2017-04-01 137 views
0

我从VB.NET客户端应用程序连接到SignalR集线器。当我关闭主窗体的FormClosing内的集线器连接时,应用程序会冻结几秒钟。SignalR Hub关闭导致客户端freez

我该如何解决这个问题?

回答

0

我经历了那个烦人的错误。解决方法是在新线程中关闭连接。 (这是C#,因为我不知道Visual Basic)

// connection disposing can block the UI thread for about 20 seconds 

Task.Run(() => 
{ 
    try 
    { 
     connectionToDispose.Dispose(); 
    } 
    catch (Exception ex) 
    { 
     // do something 
    } 
}); 
+0

这会阻止应用程序退出,直到任务完成? – Abusnake

+0

我不这么认为 – xleon

+0

您是否在应用程序存在之前关闭连接?如果是这样的话,我不需要那一步。当客户端暂时不发送ping时,服务器应自动关闭连接。 – xleon