【发布时间】:2018-05-02 05:13:46
【问题描述】:
我正在调用一个第三方 API,它的方法如下所示:
myServiceClient.Discover(key, OnCompletionCallback);
public bool OnCompletionCallback(string response)
{
// my code
}
我的挑战是,我必须打电话给Discover,因为它可以做一些我需要的秘密工作。同时,在运行我的自定义代码之前,我必须等待Discover 完成。更复杂的是,我不能只将我的代码放在OnCompletionCallback 处理程序中,因为我需要从Func 委托调用上面的代码。简而言之,我想这样做:
Func<SystemTask> myFunction = async () =>
{
await myServiceClient.Discover(key);
// my code
}
但是,我不能这样做,因为第三方 API 使用回调方法而不是 async/await 方法。
有没有办法让回调方法在异步/等待世界中工作?
【问题讨论】:
标签: c# async-await