MCAEmotiv.Interop.AbstractEEGDataSource.ReadLoop C# (CSharp) Method

ReadLoop() private method

private ReadLoop ( ) : void
return void
        private void ReadLoop()
        {
            //this.hasStarted = true;

            IArrayView<EEGDataEntry> data;
            for (bool firstTime = true; !this.shouldStop; firstTime = false)
            {
                lock (this.Lock)
                {
                    if (this.isOnline)
                    {
                        if (this.isOnline = this.TryGetData(out data))
                            foreach (var listener in this.listeners)
                                listener.Listen(data);
                        else
                            foreach (var listener in this.listeners)
                                listener.SourceDisconnected(this);
                    }
                    else if (this.isOnline = this.TryGetData(out data))
                        foreach (var listener in this.listeners)
                        {
                            listener.SourceConnected(this);
                            listener.Listen(data);
                        }
                    else if (firstTime)
                        foreach (var listener in this.listeners)
                            listener.SourceDisconnected(this);
                }

                Thread.Sleep(READ_INTERVAL_MILLIS);
            }

            lock (this.Lock)
                this.DisposeHelper();
        }