C# 비동기 작업에서 await
및 .Result
선택
Stephen Cleary의 "C# 동시 프로그래밍 핸드북"에서 한 가지 기술이 내 관심을 끌었습니다.
<code class="language-csharp">var completedTask = await Task.WhenAny(downloadTask, timeoutTask); if (completedTask == timeoutTask) return null; return await downloadTask;</code>
downloadTask
이 시간 초과 없이 완료되었으므로 await
으로 바로 돌아가는 대신 두 번째 downloadTask.Result
를 수행해야 하는 이유는 무엇입니까?
await
에 비해 .Result
저자는 await
(또는 .Result
)보다 Wait
을 사용하는 두 가지 주요 이유를 강조합니다.
await
는 AggregateException
에서 예외를 래핑하지 않으므로 보다 명확한 예외 처리 메커니즘을 제공합니다. .Result
또는 Wait
을 사용하면 교착 상태나 미묘한 런타임 문제가 발생할 수 있습니다. 이용안내
.Result
또는 Wait
사용이 완전히 금지되지는 않지만 다음 지침을 따르는 것이 좋습니다.
await
를 사용하세요. .Result
또는 Wait
와 함께 사용할 수 있습니다. .Result
및 Wait
가 적합합니다. 이러한 지침을 따르면 개발자는 예외 처리를 개선하고 교착 상태를 방지하며 더욱 강력하고 유지 관리가 쉬운 비동기 코드를 작성할 수 있습니다.
위 내용은 대기 대 결과: C# 비동기 작업에서 `.Result` 대신 `await`를 사용해야 하는 경우는 언제입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!