[英]ASP.Net vs MVC vs WebAPI and UseTaskFriendlySynchronizationContext
我有几个ASP.Net MVC和WebAPI项目。 其中大多数都是最新的(MVC 5 / WebAPI 2)。 我一直在仔细检查我的安全假设,因为我正在实现一个全局过滤器(用于MVC)和一个委托处理程序(用于WebAPI)来统一整个系统的安全性。
在这种情况下,我遇到了一些文章和帖子(见下文),它们说你应该总是将UseTaskFriendlySynchronizationContext
设置为true
(默认为false
)。 这对我来说似乎很奇怪,因为即使在VS2013中使用MVC 5和WebAPI 2新项目模板(以及ASP.Net WebForms模板)也根本不设置此应用程序设置。
关于此设置的MSDN文档几乎不存在,我发现的帖子确实说它是异步编程所必需的,似乎是在WebForms的上下文中。
所以这是我的问题:
以下是我见过的有关UseTaskFriendlySynchronizationContext
一些文章:
SynchronizationContext
一些文章真正帮助我掌握了所有这些东西的工作原理,从未提及UseTaskFriendlySynchronizationContext
:
缺少的关键参考是这篇博文 。 具体来说,您需要或者设置UseTaskFriendlySynchronizationContext
或设置targetFramework
至4.5
。 创建新项目targetFramework
设置为4.5
,因此您可以获得正确的行为( UseTaskFriendlySynchronizationContext
隐式设置为true
)。
回答您的具体问题:
async
教程都假设一个GUI应用程序场景。 Thread.CurrentPrincipal
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.