La compréhension de l'utilisation de la Tâche.Run + Wait() + async + attendent utilisé dans une ligne

Je suis un C# débutant, donc j'ai du mal à comprendre certains concepts, et je tombe sur un morceau de code que je ne suis pas tout à fait comprendre:

static void Main(string[] args)
{
 Task.Run(async () => { await SomeClass.Initiate(new Configuration()); }).Wait();
 while (true) ;
}

Que je comprends, il exécute une tâche qui initie une méthode. Cette méthode s'exécute, puis, une fois terminée, il entre dans une boucle infinie d'attente. Il estime que le code ne fait pas de sens, ou que je ne suis pas la compréhension de droit.

Grâce

Il est de forcer une méthode asynchrone SomeClass.Initiate être exécutée de manière synchrone. De La Tâche.Exécuter emballage de la méthode asynchrone n'est pas nécessaire. La boucle infinie est d'empêcher la fenêtre de la console de clôture immédiatement après la fin de Initiate. D'où ce code de viennent de, est là n'importe quel contexte?
Il y a de mieux des morceaux de code "exécuter en" pour l'exécution de méthodes asynchrones en application de console - stackoverflow.com/questions/17630506/async-at-console-app-in-c

OriginalL'auteur Pdon | 2016-09-21