Si j’ai une méthode asynchrone avec un rappel
MyMethodAsync( , Callback);
comment puis-je le rendre en attente?
[Cette méthode s’applique à Windows Phone 7, mais devrait s’appliquer de la même manière à toute construction c # similaire]
DNSEndpoint Endpoint = ... NameResolutionCallback Callback = (nrr) => { ... } DeviceNetworkInformation.ResolveHostNameAsync(Enpoint, Callback, null);
Je veux mettre un wrapper en attente autour de cet appel, j’attends donc que le rappel soit terminé avant de poursuivre avec la commande suivante.
Vous pouvez utiliser une TaskCompletionSource
:
var tcs = new TaskCompletionSource(); MyMethodAsync(..., r => tcs.SetResult(r)); return tcs.Task;