加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用Task.Run()创建的任务调用await

发布时间:2020-12-16 00:24:48 所属栏目:百科 来源:网络整理
导读:为什么可以在C#中执行此操作? var task = Task.Run (...);await task; 不应该将Task.Run()用于CPU绑定代码吗?呼叫等待这个有意义吗? 即,在调用Task.Run之后,我理解该任务正在线程池的另一个线程中运行.呼叫等待的目的是什么?调用task.Wait()会更有意义吗
为什么可以在C#中执行此操作?

var task = Task.Run (...);
await task;

不应该将Task.Run()用于CPU绑定代码吗?呼叫等待这个有意义吗?

即,在调用Task.Run之后,我理解该任务正在线程池的另一个线程中运行.呼叫等待的目的是什么?调用task.Wait()会更有意义吗?

最后一个问题,我的第一印象是await旨在专门用于异步方法.将它用于Task.Run()返回的任务是否常见?

编辑.它也让我想知道,为什么我们有Task.Wait()而不是Task.Await().我的意思是,为什么一个方法用于Wait()和一个keyworkd for await.在两种情况下使用方法都不会更一致吗?

解决方法

使用Wait会毫无意义.没有必要启动一个新的线程来做工作,如果你只是要让另一个线程坐在那里,什么都不做等待.这两者唯一明智的选择是等待它.等待任务是完全合理的,因为它允许原始线程继续执行.

等待任何类型的任务(在正确的上下文中)是明智的,无论它来自何处.等待异步方法没什么特别之处.事实上,在每个异步程序中都需要有不使用async关键字的异步方法;如果每个等待等待异步方法,那么你将无处可去.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读