作者phantasma (PeterPan)
看板C_Sharp
标题[问题] 无法中断的 thread
时间Thu Sep 29 17:11:46 2011
最近写程式遇到一个怪问题,想请教一下
我有一个 thread 里面有一个 tcp listener,可是这个 thread 却不会结束
所以每次这个程式关闭之後,它的 process 还是在
我试着在 class 的 deconstructor 里面使用 abort()
但是这个 thread 还是不会结束,我是参考 MSDN 的范例写的
http://tinyurl.com/6dcx6nb
我自己的程式码如下,可以请问一下可能是哪边出了问题嘛?
(我使用的是 visual studio express 2008, windows 7)
public class TcpServer
{
Thread TcpThread;
IPAddress localhost;
public TcpServer(){
localhost = Dns.Resolve("localhost").AddressList[0];
TcpThread = new Thread(Server);
TcpThread.Start();
}
~TcpServer(){
if (TcpThread.isAlive == true){
TcpThread.Abort();
}
}
void Server(){
TcpListener listener = new TcpListener(localhost, 1111);
listener.Start();
try{
while(true){
using (TcpClient c = listener.AcceptTcpClient())
using (NetworkStream n = c.GetStream()){
//some process
}
}
}
catch(Exception Exp){
}
finally{
listener.Stop();
}
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 72.130.134.2
1F:→ phantasma:第一个提供正解的人我会送上 500p 币作为答谢 09/29 17:13
※ 编辑: phantasma 来自: 72.130.134.2 (09/29 17:15)
2F:→ iterator:TcpThread.IsBackground = true; 09/29 17:45
3F:→ phantasma:感谢楼上帮忙,p币已经奉上~ 09/29 18:14