【问题标题】:Does .NET Task.Result block(synchronously) a thread [duplicate].NET Task.Result 是否阻塞(同步)线程[重复]
【发布时间】:2017-05-10 16:06:13
【问题描述】:

Task.Result 是否同步阻塞当前线程,使其在等待任务完成时不能用于执行其他操作?

例如,如果我在 ASP.NET 执行路径中调用 Task.Result,则当前线程在等待结果时不能用于处理其他请求。

顺便问一下,C# 5.0 中的 async 怎么样? await 异步方法会阻塞当前线程吗?

感谢您的任何评论。

【问题讨论】:

  • 猜猜这就是await FF.Result 之间的区别。一个是异步的,另一个不是。
  • @Emad,是的,我也这么认为。不过,我想找一份正式的文档或更详细的说明。
  • 由于您在提出问题之前显然已经阅读了Task.Result 文档,因此我认为需要进行更深入的解释 - 正如链接副本所提供的那样。

标签: c# asp.net asynchronous synchronization task


【解决方案1】:

MSDN:https://msdn.microsoft.com/en-us/library/dd321468(v=vs.110).aspx

访问属性的get访问器会阻塞调用线程,直到异步操作完成;相当于调用Wait方法

MSDN:https://msdn.microsoft.com/en-us/library/hh156528.aspx

await 表达式不会阻塞它正在执行的线程

【讨论】:

    猜你喜欢
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多