private void ListenThread() { try { RemoteSocket.ReceiveTimeout = 1000; byte[] buffer = new byte[1024 * 1024]; while (this.IsExpired == false) { SocketHelpers.Read(this, RemoteSocket, buffer, 4); if (this.IsExpired) { break; } var messageLength = BitConverter.ToInt32(buffer, 0); SocketHelpers.Read(this, RemoteSocket, buffer, messageLength); if (this.IsExpired) { break; } var messageText = Encoding.UTF8.GetString(buffer, 0, messageLength); MessageReceived.Fire(messageText); } } catch (Exception ex) { UnexpectedDisconnect.Fire(ex); this.Dispose(); } finally { RemoteSocket.Close(); } }
private void OnUnexpectedDisconnect() { _IsConnected = false; _AcquisitionInProgress = false; _Completed = true; OnPropertyChanged(); new Thread(() => { UnexpectedDisconnect?.Invoke(this, new EventArgs()); }).Start(); }
public void OnUnexpectedDisconnect() { IsConnected = false; UnexpectedDisconnect?.Invoke(this, EventArgs.Empty); }