如果我有一个带回调的异步方法
MyMethodAsync( <Input Parameters ...>, Callback);
我怎么能让它等待?
[此方法适用于Windows Phone 7,但应同样适用于任何类似的c#构造]
DNSEndpoint Endpoint = ...
NameResolutionCallback Callback = (nrr) => { ... }
DeviceNetworkInformation.ResolveHostNameAsync(Enpoint, Callback, null);
我想在这个调用中放置一个等待的包装器,所以我等待回调完成,然后再继续下一个命令。
答案 0 :(得分:7)
您可以使用TaskCompletionSource
:
var tcs = new TaskCompletionSource<TypeOfCallbackParameter>();
MyMethodAsync(..., r => tcs.SetResult(r));
return tcs.Task;