//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ protected IEnumerator StartReadingMessages() { bool continueReading = true; NMessage nm; while (isRunning) { continueReading = _MBuffer.GetNextMsg(out nm); while (continueReading) { OnMessageReceivedSync(nm.endPoint, nm.bfData); continueReading = _MBuffer.GetNextMsg(out nm); } yield return(new WaitUntil(() => _MBuffer.hasPendingMessages)); } }