asp.net core 为什么移除synchronizationcontext?

2019-01-02 19:54发布

现在async await在core这样写都不会死锁。而framework还是会的。看了

Stephen Cleary的文章和synchronizationcontext的解释没看的怎么明白。详细想知道的是:

1.synchronizationcontext承担一个什么角色,同步上下文具体是怎么操作线程的,为什么可有可无?【framework中可配置移除<add key="aspnet:UseTaskFriendlySynchronizationContext" value="false" />】

2.为什么core中要移除synchronizationcontext,那么又是怎么保证线程间的同步的?

标签:
1条回答
无与为乐者.
2楼-- · 2019-01-02 20:39

严重不同意“现在async await在core随便写都不会死锁”,血的教训告诉我们在 asp.net core 中如果在同步方法中调用 async 异步方法,死锁会更厉害,会锁住整个线程池, 详见 又踩.NET Core的坑:在同步方法中调用异步方法Wait时发生死锁(deadlock)

查看更多
登录 后发表回答