我正在开发一个 WPF 聊天应用程序,有两个项目
- WPF 服务器
- WPF 客户端
在发出登录请求
时,我希望用户只有在服务器已经启动时才能连接,否则用户将无法登录。
我在此应用程序中使用 SignalR
。如何在登录前检查服务器是否已经启动,然后让用户连接到它。
它可以用 JavaScript 实现
$.connection.hub.start().done(function ()
{
});
如何在 wpf 应用程序中实现这一点?
最佳答案
你可以像下面的代码一样通过异常来处理它:
try
{
var hubConnection = new HubConnection(url,...);
... ; /*defining proxies and handlers*/
hubConnection.Start().Wait();
}
catch(Exception ex)
{
/*handle exception code */
}
或者:注意
hubconnection.Start()
返回一个 Task
所以如果你想运行一个代码并检查它是否运行成功或者有异常,你可以使用 ContinueWith
方法:
var hubConnection = new HubConnection(url,...);
... ; /*defining proxies and handlers*/
hubConnection.Start().ContinueWith( t=> {
/* code to run if connection has been made successfully */
},TaskContinuationOptions.OnlyOnRanToCompletion );
所以我们可以说带有 TaskContinuationOptions.OnlyOnRanToCompletion
的 ContinueWith 等同于 $.connection.hub.start().done()
关于c# - WPF 应用程序是否有等效于 $.connection.hub.start().done() Javascript 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38137142/