6

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

MyMethodAsync( <Input Parameters ...>, Callback);

我怎样才能让它等待?

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

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

我想在此调用周围放置一个可等待的包装器,因此我等待回调完成,然后再继续执行下一个命令。

4

1 回答 1

7

您可以使用TaskCompletionSource

var tcs = new TaskCompletionSource<TypeOfCallbackParameter>();

MyMethodAsync(..., r => tcs.SetResult(r));

return tcs.Task;
于 2013-02-01T12:15:50.650 回答