异步/等待事件

时间:2017-03-13 15:23:54

标签: c# events asynchronous async-await

我有以下情况。我正在运行一个tcp客户端,我得到心跳和其他对象等推送通知。我也可以像GetWeather这样的服务器对服务器运行命令。每次我收到一个 对象我提出了一个非常好的事件。 但现在我希望能够在服务器上请求一些数据并等待它,直到服务器响应正确的对象。在对象的请求期间,也可以向我发送其他对象。

这是一些伪代码:

而不是:

TcpServer.ObjectReceived += ObjectReceivedMethod;
TcpServer.GetWeather();
public void ObjectReceived(object data)
{

}

我想:

var result = await TcpServer.GetWeather();

如何将天气信息从ObjectReceived转移到等待方法?

KR Manuel

1 个答案:

答案 0 :(得分:3)

您想使用NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL]; NSData *receipt = [NSData dataWithContentsOfURL:receiptURL]; ,如下所示:

TaskCompletionSource<T>

这假设您的服务器将使用GUID ID将请求与响应相关联。