public override void Stop()
        {
            if (Listener != null)
            {
                Listener.StopMatriksPriceSocket();
            }


            StreamMessageQueue.Stop();
            StreamMessageQueue.Dispose();


            Parser001Queue.Stop();
            Parser001Queue.Dispose();
            Parser002Queue.Stop();
            Parser002Queue.Dispose();
            Parser012Queue.Stop();
            Parser012Queue.Dispose();
            Parser020Queue.Stop();
            Parser020Queue.Dispose();
            Parser060Queue.Stop();
            Parser060Queue.Dispose();
            Parser064Queue.Stop();
            Parser064Queue.Dispose();
            ParserUnkownQueue.Stop();
            ParserUnkownQueue.Dispose();

            //DbLogQueue.Stop();
            //DbLogQueue.Dispose();


            StartEnabled = true;
            StopEnabled  = false;
            WatchEnabled = false;
        }
        private void CrackParser(string tmpLine)
        {
            if (string.IsNullOrEmpty(tmpLine) || tmpLine.Length < 10)
            {
                ParserUnkownQueue.Enqueue(new ParserArg()
                {
                    Func = UnkownParser, Parameter = tmpLine
                });
            }
            else
            {
                string head = tmpLine.Substring(0, 3);

                switch (head)
                {
                case "001":
                    Parser001Queue.Enqueue(new ParserArg()
                    {
                        Func = TryParse001, Parameter = tmpLine
                    });
                    break;

                case "002":
                    Parser002Queue.Enqueue(new ParserArg()
                    {
                        Func = TryParse002, Parameter = tmpLine
                    });
                    break;

                case "012":
                    Parser012Queue.Enqueue(new ParserArg()
                    {
                        Func = TryParse012, Parameter = tmpLine
                    });
                    break;

                case "020":
                    Parser020Queue.Enqueue(new ParserArg()
                    {
                        Func = TryParse020, Parameter = tmpLine
                    });
                    break;

                case "021":
                    Parser020Queue.Enqueue(new ParserArg()
                    {
                        Func = TryParse021, Parameter = tmpLine
                    });
                    break;

                case "022":
                    Parser020Queue.Enqueue(new ParserArg()
                    {
                        Func = TryParse022, Parameter = tmpLine
                    });
                    break;

                case "060":
                case "061":
                    Parser060Queue.Enqueue(new ParserArg()
                    {
                        Func = TryParse060, Parameter = tmpLine
                    });
                    break;

                case "062":
                case "063":
                case "064":
                    Parser064Queue.Enqueue(new ParserArg()
                    {
                        Func = TryParse064, Parameter = tmpLine
                    });
                    break;

                case "065":
                    ParserUnkownQueue.Enqueue(new ParserArg()
                    {
                        Func = NullParser, Parameter = tmpLine
                    });
                    break;
                }
            }
        }