草庐IT

ConfigureAwait

全部标签

c# - 在 WebApi 或 MVC Controller 中使用 ConfigureAwait(false) 有什么危险吗?

假设我有两种情况:1)WebApiController[System.Web.Http.HttpPost][System.Web.Http.AllowAnonymous][Route("api/registerMobile")]publicasyncTaskRegisterMobile(RegisterModelmodel){varregisterResponse=awaitAuthUtilities.RegisterUserAsync(model,_userService,User);if(registerResponse.Success){varresponse=await_use

dotnet 使用 ConfigureAwait.Fody 库设置默认的 await 同步上下文切换配置

在dotnet里面,使用await进行异步逻辑,默认是会尝试切换回调用await的线程同步上下文。这个机制对于大多数的上层应用来说都是符合逻辑且方便的逻辑,例如对于带UI线程的WPF或WinForms等应用,基础开发的执行逻辑基本都是在UI线程上,此时进入一次await再出来,期望如果是进入await之前是在UI线程,那么执行await完成之后,退出的代码也能在UI线程执行,正好这就是dotnet的默认行为。但是对于库开发者来说,情况就反过来的,库的开发者大部分时候更期望默认不要切换回调用方的线程,采用Fody的ConfigureAwait.Fody库,可以控制此默认的行为。本文将告诉大家如何

dotnet 使用 ConfigureAwait.Fody 库设置默认的 await 同步上下文切换配置

在dotnet里面,使用await进行异步逻辑,默认是会尝试切换回调用await的线程同步上下文。这个机制对于大多数的上层应用来说都是符合逻辑且方便的逻辑,例如对于带UI线程的WPF或WinForms等应用,基础开发的执行逻辑基本都是在UI线程上,此时进入一次await再出来,期望如果是进入await之前是在UI线程,那么执行await完成之后,退出的代码也能在UI线程执行,正好这就是dotnet的默认行为。但是对于库开发者来说,情况就反过来的,库的开发者大部分时候更期望默认不要切换回调用方的线程,采用Fody的ConfigureAwait.Fody库,可以控制此默认的行为。本文将告诉大家如何