C# WPF应用程序是否有一个与$.connection.hub.start().done()等效的Javascript方法?
我正在开发一个WPF聊天应用程序,其中有两个项目C# WPF应用程序是否有一个与$.connection.hub.start().done()等效的Javascript方法?,c#,wpf,signalr,C#,Wpf,Signalr,我正在开发一个WPF聊天应用程序,其中有两个项目 WPF服务器 WPF客户端 在发出登录请求时,我希望用户仅在服务器已启动时连接,否则用户将无法登录 我在这个应用程序中使用了signal。如何在登录前检查服务器是否已启动,然后让用户连接到服务器 它可以在JavaScript中通过 $.connection.hub.start().done(function () { }); 如何在wpf应用程序中实现这一点?您可以通过以下代码之类的异常来处理它: try { var hubCon
登录请求时
,我希望用户仅在服务器已启动时连接,否则用户将无法登录
我在这个应用程序中使用了signal
。如何在登录前检查服务器是否已启动,然后让用户连接到服务器
它可以在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()
返回一个任务
,因此,如果要运行代码并检查它是否成功运行或是否存在异常,可以使用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说这个continuation。只有rantocompletion
相当于$.connection.hub.start().done()@akazemis感谢您的快速响应,但这不是我想要的。实际上,如果客户端连接到服务器,这些方法将被调用。我想知道的是,在允许用户连接之前,我如何确定服务器是否启动。如果您将此代码放入try/catch中,您可以捕获连接错误时的异常,您尝试过吗<代码>尝试{var hubConnection=new hubConnection(url,…);…;hubConnection.Start().Wait();}catch(Exception ex){/*句柄异常代码*/}