Ich habe eine Gruppe von Befehlen, die von einer Basisklasse erben. Die Basisklasse hat die folgende Erklärung ab:async Task-Methode, die nicht warten muss
public virtual async Task Execute(object parameter){}
Vererben Klassen bieten eine Überschreibung dieser Methode und nicht alle von ihnen erwarten Aufgaben. In diesen Fällen generiert der Compiler eine Warnung:
Diese asynchrone Methode fehlt "warten" -Operatoren und wird synchron ausgeführt. Erwägen Sie, den Operator 'erwarten' zu verwenden, um auf nicht blockierende API-Aufrufe zu warten, oder 'awarte Task.Run (...)', um CPU-gebundene Arbeit an einem Hintergrund-Thread auszuführen.
Ist es korrekt, einen vollständigen Rückgabewert der Aufgabe explizit anzugeben?
public override async Task Execute(object parameter) {
//code containing no await statements...
await Task.CompletedTask;
}
I diffed die Ausgabe meines ursprünglichen Codes und die Ausgabe Ihrer empfohlenen Änderungen von dotPeek und sie sind identisch (die Debug-DLL). Ihr Beispiel entfernt auch die Compiler-Warnung, die meine ursprüngliche Motivation war. - Vielen Dank! – jchristof