GitHub에서 문제 ( https://github.com/HTBox/allReady/issues/1313 )를 발견했습니다 . 그들은 ASP.NET CoreConfigureAwait(false)
에서 코드를 꺼내는 것에 대해 논의했습니다.
에 대한 호출
ConfigureAwait(false)
이 중복되고 아무 작업도 수행하지 않습니다.
여기에서 찾을 수있는 가장 좋은 것은 답변 (Stephen Cleary, https://stackoverflow.com/a/40220190/2805831 )에 있는 “사이드 노트” 입니다.
ASP.NET Core에는 더 이상 “컨텍스트”가 없습니다.
그렇다면 ASP.NET CoreConfigureAwait(false)
에서 정말 불필요 합니까 (전체 .Net Framework를 사용하더라도)? 어떤 경우에는 성능이 실질적으로 향상되거나 결과 / 의미에 차이가 있습니까?
편집 : 콘솔 응용 프로그램이나 IIS에서 호스팅하는 경우이 측면에서 다른가요?
답변
ConfigureAwait
SynchronizationContext
ASP.NET Core에없는 (ASP.NET “Legacy”가 수행하는) 컨텍스트에서 실행되는 코드에만 영향을줍니다 .
범용 코드는 SynchronizationContext
.
답변
이건 어때?
현재 (2020 년 2 월) MS 블로그의 개발자는 성능 향상, 교착 상태 방지를 위해 ConfigureAwait (false)를 사용할 것을 권장합니다.
https://devblogs.microsoft.com/dotnet/configureawait-faq/
.NET Core에서 ConfigureAwait (false)가 더 이상 필요하지 않다고 들었습니다. 진실? 그릇된. .NET Framework에서 실행할 때와 똑같은 이유로 .NET Core에서 실행할 때 필요합니다. 그 점에서 변경된 것은 없습니다.