public void Start()
        {
            this.socket.Listen(0);

            ThreadPool.QueueUserWorkItem(_ => {
                Thread.CurrentThread.Name = "TcpSocket Accept Thread";
                ThreadChecker.ConfigureAccept(Thread.CurrentThread);
                do
                {
                    this.Accept();
                } while (this.socket != null);
                Logger.Log("TcpSocket Accept Thread EXITING!");
                ThreadChecker.ConfigureAccept(null);
            });
        }