From 7ee9224f4779efc78bfc8130e518e7d123864d47 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期二, 11 四月 2023 11:42:38 +0800 Subject: [PATCH] 修复退出登录,挤下线卡死问题 --- HDL_ON/DAL/DriverLayer/Control_TcpClient.cs | 85 ++++++++++++++++++++++-------------------- 1 files changed, 45 insertions(+), 40 deletions(-) diff --git a/HDL_ON/DAL/DriverLayer/Control_TcpClient.cs b/HDL_ON/DAL/DriverLayer/Control_TcpClient.cs index 251f039..2c53a79 100644 --- a/HDL_ON/DAL/DriverLayer/Control_TcpClient.cs +++ b/HDL_ON/DAL/DriverLayer/Control_TcpClient.cs @@ -320,54 +320,59 @@ { receiveThread = new Thread(() => { - while (isConnected) + try { - if (_tcpClient == null) + while (isConnected) { - try + if (_tcpClient == null) { - receiveThread?.Abort(); - } - catch { } - finally - { - receiveThread = null; - } - return; - } - if (!_tcpClient.Connected) - { - MainPage.Log("tcp瀹㈡埛绔柇寮�浜嗚繛鎺�..."); - isConnected = false; - return; - } - try - { - // 瀹氫箟涓�涓�2M鐨勭紦瀛樺尯锛� - byte[] arrMsgRec = new byte[1024 * 1024 * 2]; - try - { - int size = _tcpClient.GetStream().Read(arrMsgRec, 0, arrMsgRec.Length); - } - catch (Exception ex) - { - isConnected = false; - MainPage.Log($"灞�鍩熺綉tcp鏁版嵁鎺ユ敹寮傚父:{ex.Message}"); + try + { + receiveThread?.Abort(); + } + catch { } + finally + { + receiveThread = null; + } return; } - var tcpDataString = System.Text.Encoding.UTF8.GetString(arrMsgRec, 0, arrMsgRec.Length); - - - if (!string.IsNullOrEmpty(tcpDataString)) + if (!_tcpClient.Connected) { - MainPage.Log($"灞�鍩熺綉tcp鏁版嵁鎺ユ敹"); - Control.Ins.ConvertReceiveData(arrMsgRec, null); - + MainPage.Log("tcp瀹㈡埛绔柇寮�浜嗚繛鎺�..."); + isConnected = false; + return; } - } - catch (Exception) { } - } + try + { + // 瀹氫箟涓�涓�2M鐨勭紦瀛樺尯锛� + byte[] arrMsgRec = new byte[1024 * 1024 * 2]; + try + { + int size = _tcpClient.GetStream().Read(arrMsgRec, 0, arrMsgRec.Length); + } + catch (Exception ex) + { + isConnected = false; + MainPage.Log($"灞�鍩熺綉tcp鏁版嵁鎺ユ敹寮傚父:{ex.Message}"); + return; + } + var tcpDataString = System.Text.Encoding.UTF8.GetString(arrMsgRec, 0, arrMsgRec.Length); + + if (!string.IsNullOrEmpty(tcpDataString)) + { + MainPage.Log($"灞�鍩熺綉tcp鏁版嵁鎺ユ敹"); + Control.Ins.ConvertReceiveData(arrMsgRec, null); + + } + } + catch (Exception) { } + } + }catch (Exception ex) + { + MainPage.Log($"tcp ReceiveMessage error :{ex.Message}"); + } }); //receiveThread.IsBackground = true; receiveThread.Start(); -- Gitblit v1.8.0