现在async await在core这样写都不会死锁。而framework还是会的。看了
Stephen Cleary的文章和synchronizationcontext的解释没看的怎么明白。详细想知道的是:
1.synchronizationcontext承担一个什么角色,同步上下文具体是怎么操作线程的,为什么可有可无?【framework中可配置移除<add key="aspnet:UseTaskFriendlySynchronizationContext" value="false" />】
2.为什么core中要移除synchronizationcontext,那么又是怎么保证线程间的同步的?
标签:
严重不同意“现在async await在core随便写都不会死锁”,血的教训告诉我们在 asp.net core 中如果在同步方法中调用 async 异步方法,死锁会更厉害,会锁住整个线程池, 详见 又踩.NET Core的坑:在同步方法中调用异步方法Wait时发生死锁(deadlock)