enz*_*nzi 4 c# signalr signalr-hub
我有一些执行I/O操作的集线器方法,我想异步调用它.
ConfigureAwait(false)在我的集线器方法中使用是否安全,或者SignalR是否需要捕获的SynchronizationContext用于请求信息或类似的东西?
public async Task<Response> Save() {
// do some prep work
var response = await SaveThingsAsync().ConfigureAwait(false);
// do something with response
return response;
}
Run Code Online (Sandbox Code Playgroud)
为了澄清:我的代码不需要线程文化或SynchronizationContext中存储的任何其他内容.
我担心的是SignalR服务器代码可能在那里存储信息,例如客户端ID,请求信息等,如果从不同的线程继续执行异步方法,它可能无法访问.
当我测试我的方法它似乎工作正常,但这并不能证明任何必要.
ConfigureAwait不会删除同步上下文.它只会导致任务完成继续不使用当前的同步上下文.
如果当前异步方法的其余部分不依赖于同步上下文,则始终可以安全使用.强调方法而不是线程.
| 归档时间: |
|
| 查看次数: |
329 次 |
| 最近记录: |