diff --git a/src/Parser.cs b/src/Parser.cs index 57ff013..e6604c6 100644 --- a/src/Parser.cs +++ b/src/Parser.cs @@ -47,19 +47,21 @@ namespace WorldOfPeacecraft BufferFilledEvent.Reset (); } } - if (waitRequired) + if (waitRequired) { BufferFilledEvent.WaitOne (); + } lock (Buffer) { Message.AddLast (Buffer.Dequeue ()); } + if (IsCompletePackage ()) { + Parse (); + } + // TODO Try-catch. IMPORTANT! } } private void Parse () { - // If package is not complete wait for more lines - if (!IsCompletePackage ()) - return; String[] aMessage = Enumerable.ToArray (Message); Block mainBlock = new Block (aMessage, 0, aMessage.Length - 1); ProcessData (mainBlock);