private string Read() { if (!Connected) { return(null); } DateTime startedReadingTime = DateTime.Now; var sb = new StringBuilder(); do { if (ParseTelnet(sb)) { break; } if (startedReadingTime.Add(timeoutTime) < DateTime.Now) { timeouted = true; Stop(); return(string.Empty); } } while(Connected); string str = sb.ToString(); if (str.IndexOf("notify") == 0) { EventHandled?.Invoke(this, str); } return(sb.ToString().TrimEnd()); }
protected virtual void Dispose(Boolean disposing) { if (System.Threading.Interlocked.Exchange(ref disposed, 1) == 1) { return; } Unsubscribe(); if (disposing) { foreach (var eh in EventHandled.GetInvocationList()) { EventHandled -= (EventHandler <BusEventArgs <TEvent> >)eh; } foreach (var eh in EventReceived.GetInvocationList()) { EventReceived -= (EventHandler <BusEventArgs <TEvent> >)eh; } } }
/// <summary> /// Releases unmanaged and - optionally - managed resources /// </summary> /// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param> private void Dispose(Boolean disposing) { if (Interlocked.Exchange(ref disposed, 1) == 1) { return; } if (disposing) { Unsubscribe(); foreach (Delegate d in EventHandled.GetInvocationList()) { EventHandled -= (EventHandler <BusEventArgs <TEvent> >)d; } foreach (Delegate d in EventReceived.GetInvocationList()) { EventReceived -= (EventHandler <BusEventArgs <TEvent> >)d; } } }