2017-04-01 189 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