async an der Konsole App in C #? [Duplikat]
Diese Frage hat hier bereits eine Antwort:
Der Modifizierer 'async' kann in der 'Main'-Methode einer Konsolen-App nicht angegeben werden 15 AntwortenIch habe diesen einfachen Code:
public static async Task<int> SumTwoOperationsAsync()
{
var firstTask = GetOperationOneAsync();
var secondTask = GetOperationTwoAsync();
return await firstTask + await secondTask;
}
private async Task<int> GetOperationOneAsync()
{
await Task.Delay(500); // Just to simulate an operation taking time
return 10;
}
private async Task<int> GetOperationTwoAsync()
{
await Task.Delay(100); // Just to simulate an operation taking time
return 5;
}
Großartig. dies kompiliert.
Aber sagen wir, ich habe eine Konsolen-App und möchte den obigen Code ausführen (aufrufend)SumTwoOperationsAsync()
)
static void Main(string[] args)
{
SumTwoOperationsAsync();
}
Aber ich habe das gelesen (bei der Verwendung vonsync
) Ich muss den ganzen Weg synchronisierenoben undNieder :
Frage : Also heißt das, dass meineMain
Funktion sollte markiert sein alsasync
?
Nun eskippen Das liegt daran, dass ein Kompilierungsfehler vorliegt:
Ein Einstiegspunkt kann nicht mit dem Modifikator 'async' markiert werden
Wenn ich das asynchrone Zeug verstehe, wird der Thread das eingebenMain
Funktion ---->SumTwoOperationsAsync
----> ruft beide Funktionen auf und ist aus. aber bis zumSumTwoOperationsAsync
Was vermisse ich ?