任何人都可以向我解釋爲什麼第二個Working!
在Done
之後顯示?異步/等待執行步驟
Stating
Doing Work
Working!
Done
Working!
Work completed
第二個問題,爲什麼我就不能做到像下面讓任務結果:
Task result = await LongOperation();
而最後一個問題是什麼是代表與AWAIT /異步例如使用Task.Run
的原因在我的代碼?它可以在哪裏使用,或者使用它不好?
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Starting");
var worker = new Worker();
worker.DoWork();
Console.WriteLine("Done");
Console.ReadKey();
}
}
public class Worker
{
public async void DoWork()
{
Console.WriteLine("Doing work");
await LongOperation();
await LongOperation();
Console.WriteLine("Work completed");
}
private async Task LongOperation()
{
Console.WriteLine("Working!");
await Task.Delay(200);
}
}
1.因爲你調用了'LongOperation'兩次2.因爲這不是'await'的工作方式3.異步調用一個同步操作(將來請儘量保持它不變每個帖子有一個問題) –
請參閱[如何提問](http://stackoverflow.com/help/how-to-ask)。你應該避免在同一個線程中詢問多個問題,並且它會使它成爲一個我們很容易理解你是否提供了一些你所問的內容(特別是在你的問題中)第一個問題)的意思。 – stybl