2017-07-28 1 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(); 
} 

Konsole gespritzt ohne Fehler auftritt!C# await task Konsole splash

Antwort

0

Es passiert, weil print Methode parallel aufgerufen wird, so main geht weiter und da es nichts anderes zu tun gibt, kehrt es zurück. Nach main ist das Programm beendet.

Wenn Sie es wollen, für print Methode warten, es zu ändern, so dass es Task statt void zurück und wartet dann, diese Aufgabe in Main Methode:

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

static async Task print() {...}