如何在C#client中并发处理多个事件
我有一个用C#编写的signar客户端应用程序,它从中心订阅事件。当事件被“激发”时,应用程序执行一个方法 问题是,对于该客户机,所有此类事件都是按顺序处理的 用例/流程:如何在C#client中并发处理多个事件,c#,signalr,signalr.client,C#,Signalr,Signalr.client,我有一个用C#编写的signar客户端应用程序,它从中心订阅事件。当事件被“激发”时,应用程序执行一个方法 问题是,对于该客户机,所有此类事件都是按顺序处理的 用例/流程: myHub.On<ExecuteRequestModel, string>("Execute", (request, to) => { logger.Info("Execute request received for connectionID: " + connection.ConnectionI
myHub.On<ExecuteRequestModel, string>("Execute", (request, to) =>
{
logger.Info("Execute request received for connectionID: " + connection.ConnectionId);
myMethod();
myHub.Invoke("ExecuteResult", response, to);
logger.Info("Execute request processed");
logger.Info("...");
});
myHub.On<ExecuteRequestModel, string>("Execute", (request, to) =>
{
logger.Info("Execute request received for connectionID: " + connection.ConnectionId);
myMethod();
myHub.Invoke("ExecuteResult", response, to);
logger.Info("Execute request processed");
logger.Info("...");
});
myHub.On(“执行”(请求,收件人)=>
{
logger.Info(“执行接收到的连接ID请求:+connection.connectionID”);
myMethod();
调用(“executesult”,响应,to);
logger.Info(“执行已处理的请求”);
logger.Info(“…”);
});
有什么推荐做法可以同时处理多个事件吗?可以使用Async/Await解决。异步函数将负责向集线器回复结果
myHub.On<ExecuteRequestModel, string>("Execute", async (request, to) =>
await onExecute(request, to)
);
myHub.On(“执行”),异步(请求,到)=>
等待OneExecute(请求,发送至)
);
您能再详细说明一下吗……也许可以用一个示例场景?您好@Hackerman。问题已更新。你能看一下吗?也许可以使用任务。运行它,但我不确定你是否可以从不同的线程返回响应。我想知道这个设计。为什么web应用程序(Hub)应该通过信号器与数据库层通信,而不使用web服务或类似的东西。可能相关:请注意,基本上不需要做任何事情来获得并发性,您可能只担心您的共享状态