为什么我的线程不能退出!!!!!!!!!!!!!恨啊!!

arsang 2002-09-11 01:55:58
各位DX我写了个客户监听程序,主线程实现监听,当有客户端连接上时创建一新线程给该客户端进行数据的通讯。

  但是,惨剧发生了,退出程序时,这些客户线程却不退出,我如何才好????

  
  有没有直接的东东,退出程序时将其所有线程杀掉!杀掉!
  等!
  寂寞到夜深
private void StartListening()
 {
  listener = new TcpListener(listenport);
  listener.Start();

  while (true)

   try
    {
s = listener.AcceptSocket();
clientsocket = s;//套接字接口附值
clientservice = new Thread(new ThreadStart(ServiceClient));
clientservice.Start();//它无论如何也不愿自己退出,我恨啊!
}
   catch
{
(e.ToString() );
}
   }
 }
...全文
52 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
arsang 2002-10-25
  • 打赏
  • 举报
回复
大家好,这是我很早前的一个贴子了。这个问题已经解决。
只要将如下的程序:
s = listener.AcceptSocket();
clientsocket = s;//套接字接口附值
clientservice = new Thread(new ThreadStart(ServiceClient));
clientservice.Start();//

改成:
s = listener.AcceptSocket();
clientsocket = s;//套接字接口附值
clientservice = new Thread(new ThreadStart(ServiceClient));
    clientservice.IsBackground = true;//设为后台线程
clientservice.Start();//

当然对这些线程及相对应的TCP连接的管理可借用 jieyf(天马行空) 在上面的提出的方法。
fa2002 2002-10-25
  • 打赏
  • 举报
回复
另外,要说的是,你最好看看.net remoting方面的书再写类似的通讯程序,因为传统的端口监听方式不但技术落后而且很烦琐,在.net中大多数的http是用web service在tcp中是用remoting方式的,以前我在.net中用过端口监听方式,现在再看以前的方式觉的傻的要命 :-),remoting两三句完成的我要写七八句 :(
fa2002 2002-10-25
  • 打赏
  • 举报
回复
我也遇到过这个问题,原因就在于listener.Stop();你在退出线程的时候没有调用,其实,我想你可以没有注意到一个异常,System.Threading.ThreadAbortException
这个异常是在线程关闭的时候发生的,你要在catch这个异常的时候,在过程中加入listener.Stop()就可以了。
lanbaibai 2002-10-25
  • 打赏
  • 举报
回复
好象,还应该有问题
DragonFly-9 2002-09-11
  • 打赏
  • 举报
回复
可以这样啊:
把每一个创建的线程对象都添加到一个对象列表中
在程序退出时,遍历这个列表,取出每一个线程对象,用下面的方法中断:
Thread thd;
....
for(...)
{
if(thd !=null && thd.IsAlived)
{
thd.Abord();
}
}
///////////by jieyf
Nicholai 2002-09-11
  • 打赏
  • 举报
回复
我记得 finalize 好像不能直接调用吧?还是在 finally 区可以?
sheep2002 2002-09-11
  • 打赏
  • 举报
回复
listener.Stop();
yarshray 2002-09-11
  • 打赏
  • 举报
回复
在后面加一句
fianlly
{
clientservice.Finalize();
}

111,119

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧