繁体   English   中英

signalR 客户端挂起 wait()

[英]signalR client hangs on wait()

SignalR 客户端挂起wait();
这是我的代码

Proxy.Invoke<string>("IO_Table_Game_Status", getTableGameStateJsonReq).ContinueWith((responseJson) =>
{
    string tablestatusResp = responseJson.Result;
}).Wait();

在这里,我需要在tablestatusResp获取 Json 值。 但它显示空值。

由于(据我所知)SignalR 公开了对真正异步操作的访问(看起来它正在发送 HTTP 消息),我认为最好让您的应用程序利用这种异步性。 它使代码更易于维护和理解,并且在使用 Wait 方法及其同级方法时遇到阻塞调用的死锁时,它使您免于陷入无数陷阱。

public async Task<TReturnType> YourCurrentMethod()
{
    var tableStatusResp await Proxy.Invoke<string>("IO_Table_Game_Status", getTableGameStateJsonReq);
}

请注意,方法签名是由我编写的,您要做的就是将其标记为async以便您可以使用await关键字。

var data=Proxy.Invoke<string>("IO_Table_Game_Status", getTableGameStateJsonReq).Result;

希望这对你有帮助。

谢谢,最后我得到了我的问题的答案......我使用了 Dispatcher。 这是代码

 Application.Current.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() =>
                {
                  string  tablestatusResp = Get_Info_Panel_Proxy.Invoke<string>("IO_Table_Game_Status", getTableGameStateJsonReq).Result;
                }));                   

当我的集线器没有正确初始化时,我得到了这个。 尝试创建一个原始集线器,使用干净的构造函数和一个简单的方法来查看它是否一直挂起。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM