2017-07-28 25 views
0
static void Main(string[] args) 
{ print(); } 

static async void print() 
{ 
    try 
    { 
     await Task.Factory.StartNew(() => 
     { 
      Thread.Sleep(3000); 
      Console.WriteLine("3"); 
      Debug.Write("3"); 
     }); 
    } 
    catch (Exception) 
    { } 
    Console.Read(); 
} 

控制檯濺起來沒有發生任何錯誤!C#正在等待任務控制檯啓動

回答

0

這是因爲print方法並行調用所以main繼續,因爲沒有別的事可做,所以它返回。在main完成程序退出後。

如果你想讓它等待print方法,改變它,所以它會返回Task代替void,然後等待該任務在Main方法:

static void Main(string[] args) 
{ print().Wait(); } 

static async Task print() {...}