Warum verwenden Service -Fabric -Vorlagen Thread.sleep anstelle von task.delay?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Warum verwenden Service -Fabric -Vorlagen Thread.sleep anstelle von task.delay?

Post by Anonymous »

Wenn ich eine neue Service -Fabric -Anwendung mit einem staatenlosen ASP.NET -Kerndienst erstelle, warum befindet sich diese Codezeile in der Hauptmethode des Dienstes? < /p>

Code: Select all

// prevents this host process from terminating so services keep running
Thread.Sleep(Timeout.Infinite)
< /code>
Offensichtlich, wie der Code -Kommentar über dem tatsächlichen Code lautet, soll dies verhindern, dass der Hostprozess eine Beendigung ist. Aber warum nicht die Hauptmethode zurücklegen, um eine asynchriese Aufgabe 
anstelle von void zurückzugeben. Die Hauptmethode konnte eine asynchronisierte Aufgabe nicht zurückgeben.

Code: Select all

ServiceRuntime.RegisterServiceAsync("FirstStatelessApiType",
context => new FirstStatelessApi(context)).GetAwaiter().GetResult();
< /code>
(GetAwaiter().GetResult()
wäre auch unccessary, wenn die Methode nur eine asynchriese Aufgabe zurückgeben würde wie sie dann erwartet werden könnte)
Bearbeiten :
Ich habe bereits die Wechsel von Void -Main zu async Task Main und wait tasks verwendet. keinen Unterschied im Verhalten meines Dienstes (API -Endpunkte waren wie erwartet noch funktionieren)

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post