void CloseConnection()
        {
            try
            {
                if (bDisconnected)
                {
                    return;
                }
                bDisconnected = true;

                tcpClient.Close();

                readerStream.Close();
                readerThread.eventRunning.Set();
                writerStream.Close();

                writerThread.eventRunning.Set();
                evWritePackages.Set();

                if (disconnectedDelegate != null)
                {
                    disconnectedDelegate(this);
                }
            }
            catch (Exception e)
            {
                ModLoging.Log_Exception(e, "MDP: Close Connection");
            }
            //readerThread.WaitForEnd();
            //writerThread.WaitForEnd();
        }
        public void Close()
        {
            try
            {
                tcpClient.Close();

                readerStream.Close();
                readerThread.eventRunning.Set();
                writerStream.Close();
                writerThread.eventRunning.Set();
                evWritePackages.Set();
            }
            catch (Exception e)
            {
                ModLoging.Log_Exception(e, "MDP: Close");
            }
        }