Comment rendre une méthode asynchrone «à l’ancienne» en attente

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;