多线程调用Abort后卡死
这是我另一个线程跑的方法,在我退出前我想把它用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);
}
}
}
}