Exemple #1
0
        internal void Dispose(bool disposing)
        {
            if (disposed)
            {
                return;
            }

            if (disposing)
            {
                lineTimeoutManager?.Dispose();
                IsListening = false;

                NamedPort?.Dispose();
            }
            disposed = true;
        }
Exemple #2
0
        private void Listen()
        {
            while (IsListening)
            {
                // use Monitor to prevent possible exceptions when Disposing an active Listener
                if (Monitor.TryEnter(NamedPort))
                {
                    try
                    {
                        if (NamedPort.HasDataAvailable())
                        {
                            string msg = NamedPort.Read();
                            lineTimeoutManager.LastDataReceived = DateTimeEx.Now;

                            PortDataParser.AppendAndParse(msg);
                        }
                    }
                    finally {
                        Monitor.Exit(NamedPort);
                    }
                }
            }
        }