来自msdn,
您可以使用Task.Run将受CPU限制的工作移动到后台线程。
我的问题是,还有其他选择吗?如果我想使用await
关键字,我必须返回任务,因此我必须使用Task.Run
public static Task<int> LongProcess()
{
return Task.Run<int>(() =>
{
//Long running
return 5;
});
}
public async static void CallProcess()
{
int a = await LongProcess();
}
不仅仅是代码使用等待的选项吗?如果没有,你能否展示其他选择?如果我不使用Task.Run,为什么我需要async / await?
答案 0 :(得分:1)
这不是只是 CPU密集型工作。更常见的是,您将使用async / await进行I / O工作,否则在等待文件系统,数据库或网络操作完成时会锁定线程。