【发布时间】:2016-08-17 22:01:22
【问题描述】:
我想知道这种并行运行两个长时间运行的操作然后获得结果的方法是否正确,以及使用 async/await 是否有任何优势。
public int DoStuff()
{
var res1 = Task.Run(() => LongRunning1());
var res2 = Task.Run(() => LongRunning2());
Task.WhenAll(res1, res2);
return res1.Result + res2.Result;
}
int LongRunning1()
{
Thread.Sleep(30);
return 10;
}
int LongRunning2()
{
Thread.Sleep(10);
return 20;
}
【问题讨论】:
-
在这两个长期运行的操作中是否还有其他事情发生?
-
长时间运行的操作是否受 IO 或 CPU 限制?
标签: c# multithreading asynchronous async-await