Ich implementiere sowohl asynchrone als auch normale Versionen einer Funktion. Ich habe bereits eine Async-Version implementiert. Für die normale Version kann ich die Verwendung von asynchronen Funktionsaufrufen mit ihren normalen Gegenstücken kopieren, einfügen und ersetzen. Oder ich kann die Async-Version mit Result wie folgt aufrufen.Implementieren von Funktion mit Async-Version mit Ergebnis
Erster Ansatz:
public int SomeTask(int param)
{
//Something going on
return SomeOtherTask();
}
public async Task<int> SomeTaskAsync(int param)
{
//Something going on (copy pasted)
return await SomeOtherTaskAsync();
}
Zweiter Ansatz:
public int SomeTask(int param)
{
return SomeTaskAsync(param).Result;
}
public async Task<int> SomeTaskAsync(int param)
{
//some function calls with await
}
Gibt es ein mögliches Problem mit dem zweiten Ansatz?
Paar Artikel, die Sie lesen möchten - [? Soll ich Asynchronous Wrappers belichten für synchrone Methoden] (http://blogs.msdn.com/b/pfxteam/ archiv/2012/03/24/10287244.aspx) und [Sollte ich synchrone Wrapper für asynchrone Methoden verfügbar machen?] (http://blogs.msdn.com/b/pfxteam/archive/2012/04/13/10293638.aspx). Die Antwort in beiden Artikeln ist im Allgemeinen nein. –