如何使“旧式”异步方法等待

如果我有一个带回调的异步方法

MyMethodAsync( , Callback); 

我怎么能让它等待?

[此方法适用于Windows Phone 7,但应同样适用于任何类似的c#构造]

 DNSEndpoint Endpoint = ... NameResolutionCallback Callback = (nrr) => { ... } DeviceNetworkInformation.ResolveHostNameAsync(Enpoint, Callback, null); 

我想在这个调用周围放置一个等待的包装器,所以我等待回调完成后再继续下一个命令。

您可以使用TaskCompletionSource

 var tcs = new TaskCompletionSource(); MyMethodAsync(..., r => tcs.SetResult(r)); return tcs.Task;