Was wäre der beste Weg, um eine "klassische" asynchrone Methode zu konvertieren / zu verpacken, die einen Rückruf auf etwas verwendet, das eine (erwartete) Aufgabe zurückgibt?
Zum Beispiel mit der folgenden Methode:
public void GetStringFromUrl(string url, Action<string> onCompleted);
Ich weiß nur, wie ich dies in eine Methode einbinden kann, die eine Aufgabe zurückgibt:
public Task<string> GetStringFromUrl(string url)
{
var t = new TaskCompletionSource<string>();
GetStringFromUrl(url, s => t.TrySetResult(s));
return t.Task;
}
Ist dies der einzige Weg, dies zu erreichen?
Und gibt es eine Möglichkeit, den Aufruf von GetStringFromUrl (URL, Rückruf) in der Aufgabe selbst zu verpacken (dh der Aufruf selbst würde innerhalb der Aufgabe statt synchron ausgeführt)?
BeginXxx()
undEndXxx()
Paare. Warum suchen Sie nach anderen Möglichkeiten, dies zu tun? Was hoffen Sie zu gewinnen?