void Work_Main()
        {
            while (true)
            {
                Console.WriteLine("\tMain:");
                PackData _packSender = null;

                lock (receiveQueue)
                {
                    if (receiveQueue.Count > 0)
                    {
                        PackData _packReceive = receiveQueue.Dequeue();
                        Console.WriteLine("\tMain: receive/process/copy >> " + _packReceive.ToString());

                        _packSender = ClassPoolD.Dequeue();
                        _packSender.Copy(_packReceive);
                        ClassPoolD.Enqueue(_packReceive);
                    }
                }

                if (_packSender != null)
                {
                    lock (sendQueue)
                    {
                        Console.WriteLine("\tMain: sender queue input " + _packSender.ToString());
                        sendQueue.Enqueue(_packSender);
                    }
                }

                Thread.Sleep(Constant.SLEEP_TIME);
            }
        }
        void Work_Sender()
        {
            while (true)
            {
                lock (sendQueue)
                {
                    if (sendQueue.Count > 0)
                    {
                        Console.WriteLine("\t\tWork_Sender:");
                        PackData _packSender = sendQueue.Dequeue();

                        Console.WriteLine("\t\t:" + _packSender.ToString());
                        ClassPoolD.Enqueue(_packSender);
                    }
                }

                Thread.Sleep(Constant.SLEEP_TIME);
            }
        }