protected void MonitorTailOfFile()
        {
            var message = string.Empty;

            using (FileStream fs = new FileStream(fifoPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
            {
                using (StreamReader sr = new StreamReader(fs))
                {
                    while (continueMonitoringFile)
                    {
                        while (!sr.EndOfStream && continueMonitoringFile)
                        {
                            message = sr.ReadLine();
                            if (!string.IsNullOrEmpty(message))
                            {
                                messageParser.ParseReceivedMessage(message);
                            }
                        }
                        while (sr.EndOfStream && continueMonitoringFile)
                        {
                            Thread.Sleep(100);
                        }
                        message = sr.ReadLine();
                        if (!string.IsNullOrEmpty(message))
                        {
                            messageParser.ParseReceivedMessage(message);
                        }
                    }
                }
            }
        }