讓我們看看下面的代碼:異步函數結束得太早
class C
{
static void Main(string[] args)
{
Task t = new Task(DoSthAsync);
t.Start();
t.Wait();
Console.WriteLine("Finished?");
}
static async void DoSthAsync()
{
using (StreamReader reader = new StreamReader("file.txt"))
{
int i = 1;
while (!reader.EndOfStream)
{
Console.WriteLine("{0}: {1}", i++, await reader.ReadLineAsync());
}
}
}
}
我變得很困惑。不應該這個代碼同步工作,因爲我直接等待異步方法?從一個1000行文件中,我只能打印76行。這是爲什麼?
@ LasseV.Karlsen謝謝 – greenshade