2
從msdn,您可以使用Task.Run移動CPU綁定工作提高到一個後臺線程
您可以使用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,爲什麼我需要異步/等待?
http://stackoverflow.com/a/18015586/4767498 –
你可以有效地等待一個任務,你需要以某種方式創建。無論是Task.Run()還是Task.Factory.StartNew(),或者是Task.Start()之後的新Task(),如果您想等待它,您仍然需要一個Task。 – sellotape
[異步不是線程](http://blog.stephencleary.com/2013/11/there-is-no-thread.html)。 –