Beide Signaturen sind richtig, wenn sie richtig verwendet werden.
async Task
können Sie erwarten Schlüsselwort innerhalb Ihrer Methode verwenden. Das erste Beispiel ist völlig in Ordnung.
Das zweite Beispiel fehlende return-Anweisung:
public Task DoSomething(int aqq)
{
return DoAnotherThingAsync(aqq);
}
mit der zweiten Unterschrift gehen kann man nicht erwarten Schlüsselwort verwenden, aber trotzdem kann man eine bestimmte Aufgabe zurückkehren, dass Sie von somwhere bekam sonst zum Beispiel Task.FromResult(true);
Um Ihnen einen weiteren Unterschied betrachten Sie das Beispiel:
public async Task DoSomething1(int aqq)
{
await DoAnotherThingAsync(aqq); //blocks here and wait DoAnotherThingAsync to respond
SomethingElse();
}
public Task DoSomething2(int aqq)
{
var task = DoAnotherThingAsync(aqq); //keep going here, not waiting for anything
SomethingElse();
return task;
}
public async Task DoAnotherThingAsync(int aqq)
{
await Task.Delay(100);
}
public void SomethingElse()
{
//do something
}
Wenn Sie async verwenden/erwarten Sie warten tatsächlich die tas k zu vervollständigen. Das Zurückgeben einer Aufgabe wartet nicht auf die Ausführung der Aufgabe.
ich dies als Duplikat markiert. Die andere Frage ist nicht genau die gleiche wie deine, aber die Antwort gilt genauso gut. – Luaan