c#
에서 와 중에서 선택하십시오Task.GetAwaiter().GetResult()
.
Task.Result
예외 처리 : Task.GetAwaiter().GetResult()
내에서 예외를 랩핑합니다. 디버깅을 복잡하게 할 수 있습니다.
교착 상태 : 두 메소드의 남용은 특히 작업이 현재 스레드의 동기화 컨텍스트에 의존하는 경우 교착 상태로 이어질 수 있습니다.. 보다 더 나은 교착 상태 보호를 제공하지 않습니다
를 사용하면 비동기 실행을 가능하게하여 성능을 극대화하고 잠재적 교착 상태를 방지 할 수 있습니다. 그러나 동기식 액세스가 피할 수없는 경우 :
Task.GetAwaiter().GetResult()
호의 Task.Result
: AggregateException
직접 예외 처리는 오류 관리를 단순화합니다
이것은 사용 된 방법에 관계없이 잠재적 예외를 처리하는 데 중요합니다.
교착 상태를 염두에 두십시오 : Task.GetAwaiter().GetResult()
UI 스레드 또는 기타 제한된 컨텍스트 내에서 작업하는 경우 차단의 의미를 신중하게 고려하십시오. Task.Result
.
를 사용하여 비동기 프로그래밍 패턴을 수용하여 통화 차단과 관련된 복잡성과 위험을 피합니다. .
위 내용은 Task.Result와 Task.GetAwaiter().GetResult(): 차이점은 무엇이며 어느 것을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!