In einer asynchronen Methode, in der der Code nicht in Ordnung ist, gibt es einen Grund, warum jemand async markiert, auf die Aufgabe wartet und dann zurückkehrt?Sollte ich Async verwenden, wenn ich eine Aufgabe zurücksende und nichts erwarte
Abgesehen von der potenziellen Unnotwendigkeit, was sind die negativen Auswirkungen davon?
In diesem Beispiel wird davon ausgegangen, dass QueryAsync<int>
zurückgibt.
private static async Task<int> InsertRecord_AsyncKeyword(SqlConnection openConnection)
{
int autoIncrementedReferralId =
await openConnection.QueryAsync<int>(@"
INSERT INTO...
SELECT CAST(SCOPE_IDENTITY() AS int)"
);
return autoIncrementedReferralId;
}
private static Task<int> InsertRecord_NoAsyncKeyword(SqlConnection openConnection)
{
Task<int> task =
openConnection.QueryAsync<int>(@"
INSERT INTO...
SELECT CAST(SCOPE_IDENTITY() AS int)"
);
return task;
}
// Top level method
using (SqlConnection connection = await DbConnectionFactory.GetOpenConsumerAppSqlConnectionAsync())
{
int result1 = await InsertRecord_NoAsyncKeyword(connection);
int result2 = await InsertRecord_AsyncKeyword(connection);
}
Hoffnung, dass man wollte könnte [sicher ein asynchrones Verfahren ohne await nennen] (http://stackoverflow.com/questions/15522900/how- to-sicher-Aufruf-ein-Async-Methode-in-c-sharp-ohne-erwarten) –
Methode, die Async verwenden und nicht beide sind die gleichen aus der Sicht des Aufrufers. Beide sind eine Methode, die "Aufgabe" zurückgibt. Das 'async' Schlüsselwort ermöglicht Ihnen nur die Verwendung von' wait' innerhalb der Methode, nicht des Aufrufers. –
@NiyokoYuliawan Ich bin gespannt, ob das Warten früher als erwartet irgendwelche Auswirkungen auf die Leistung hätte. – contactmatt