将事件回调转换为异步等待

时间:2017-01-13 01:05:12

标签: c# events asynchronous delegates tcpclient

我做了一些彻底的研究,我不确定我是否提出了错误的问题,如果我的行话不对,那是不可能的,或者我错过了明显的问题。

简介

我正在编写一个基于插件的库,为聊天客户端创建自动响应器(连接到TCP服务器的TCP客户端(用于TCP连接的异步回调))

服务器根据客户端请求的信息返回数据包(无duh)当前正在使用带有事件和委托的回调来查找某些数据包。

var bot = new ChatClient();
bot.OnMessage += (msg) => Console.WriteLine("Message Recieved: " + msg.Content);

非常直接,但正如我发现的那样,每一个" Message Packet"服务器响应它是否通过,响应是在数据包正文中给出的JSON有效负载。目前我获得响应的代码如下:

bot.Message("Hello World", (resp) => { Console.WriteLine("Response: " + resp.Result); });

这种方式的工作方式是,每条消息都带有一个ID,服务器会使用相同ID的Response数据包进行响应。我将Action存储在具有该ID的字典中​​,然后在服务器响应该消息后调用该方法。

但我希望能做的事情如下:

var response = await bot.Message("Hello World");

响应对象是消息的响应。

所以,如果我正确地表达我的问题,那就是这样的:

如何使用来自事件的回调结束异步方法?

如果我使用了错误的术语,请告诉我。 :) 谢谢。 Ps:我对此问题提出了新的建议。

0 个答案:

没有答案
相关问题