SignalR和WinRT客户端:不要在Start()上调用Wait()
我对SignalR的官方文档有疑问 – Hubs API Guide – .NET Client 。 在“ 如何建立连接”部分中 。 它写了以下内容:
Start方法异步执行。 要确保在建立连接之后不执行后续代码行,请在ASP.NET 4.5异步方法中使用await,或在同步方法中使用.Wait()。 不要在WinRT客户端中使用.Wait()。
有谁知道不打电话给Wait()的具体原因是什么? 此外,当我有一个WinRT客户端,我与hubProxy.Invoke()
调用服务器时,这也适用吗?
谢谢您的帮助!
来自评论:
没有提到异步或同步代码。 默认情况下代码WinRT是异步还是还有其他我不知道或不理解的东西?
在客户端UI应用程序(包括WinRT)中,至少有两个不阻止的原因:
后者对于WinRT尤为重要,因为异步是普遍存在的。 整个WinRT框架被设计为“一直向下异步” ,所以如果你在UI线程的任何地方使用task.Wait
或task.Result
你很可能会创建一个死锁。
对于服务器端ASP.NET应用程序,还有至少两个不阻止的原因:
您可能需要浏览async-await
wiki中的链接列表以获取更多阅读材料。
上述就是C#学习教程:SignalR和WinRT客户端:不要在Start()上调用Wait()分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1022068.html