如何使“旧式”异步方法等待
如果我有一个带回调的异步方法
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;