这是我另一个线程跑的方法,在我退出前我想把它用Abort方法关掉,但是我调用chatThread.Abort()后它就卡在那里不动我,我但不调试也是到这一步就卡死了,界面也移不动什么都做不了,求大神解答一下什么原理private void ListenChat()
        {
            while (true)
            {
                lock (lockObjChat)
                {
                    try
                    {
                        ChatSocket.Listen(0);
                        Socket s = ChatSocket.Accept();
                        string recvStr = Utility.RecvMessage(s);
                        if (MessageBox.Show("there is a call for you,receive ?", "Ask",
                                    MessageBoxButtons.OKCancel, MessageBoxIcon.Question)
                            == System.Windows.Forms.DialogResult.OK)
                        {
                            Chat c = new Chat(recvStr, s, ChatCategory.Receiver);
                            this.Invoke(new ShowChatForm(ShowChat), c);
                        }
                    }
                    catch (SocketException e)
                    {
                        MessageBox.Show(e.Message.ToString() + e.ErrorCode+e.Source);
                    }
                }
            }
        }