await Task和有什么不一样 和任务。结果?

await Task和有什么不一样 和任务。结果?,第1张

await Task和有什么不一样 和任务。结果?

如果我认为await将释放调用线程,但是Task.Result将阻止它,那我不会错,对吗?

通常,是的。

awaittask;
将“屈服”当前线程。
task.Result
阻塞当前线程。
await
是异步等待;
Result
是一个阻塞的等待。

还有另一个较小的区别:如果任务在故障状态下完成(即有异常),则将

await
按原样(重新)引发该异常,但
Result
会将异常包装在中
AggregateException

作为旁注,请避免

Task.Factory.StartNew
。几乎永远不会使用正确的方法。如果您需要在后台线程上执行工作,请选择
Task.Run

如果您正在执行动态任务并行性,则两者

Result
StartNew
都适用;否则,应避免使用它们。如果您要进行异步编程,这两种方法都不适用。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/4981544.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存