我有一个用C#编写的SignalR客户端应用程序,它从Hub订阅一个事件。当事件被“触发”时,应用程序执行一个方法。
问题是,对该客户的所有此类事件都是按顺序处理的。
使用案例/流程:
如果其他用户同时点击该按钮,SignalR客户端一次只会存储一条消息。
客户案例:
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("...");
});
有任何建议的做法以并发方式处理多个事件吗?
答案 0 :(得分:0)
可以使用Async / Await解决。 Async函数将负责回复Hub。
myHub.On<ExecuteRequestModel, string>("Execute", async (request, to) =>
await onExecute(request, to)
);