在网络编程中,我起用了一个新的线程来阻塞式的处理客户端的连接,现在我要在主线程中关闭这个新的线程,调用了线程类的About()方法,但是无效,请问各位,有什么解决的办法?

解决方案 »

  1.   

    关注,我也遇到过这样的问题,对于在阻塞状态下的线程不知道如何中止,我是这样处理的:如果阻塞的方法有timeout,就把timeout设短一些,实在不行就直接kill进程,-_-#
      

  2.   

    在Thread之外的变量(比如全局变量)中,保留在Thread里面阻塞的线程的引用。在Thread中,阻塞的代码,必须包在Try{}中。在需要停止进程时,只要对进程中的socket调用abort(),那么,阻塞也就停止了,并报一个错误。 这个错误,在catch{}里容错掉就OK了
      

  3.   

    补充: 在进程中,由于被阻塞了,是无法调用abort的。调用abort的,必须是另一个线程(比如winform所在的线程)。
      

  4.   

    Sunmast(速马|AIR SUPPLY!) 能不能说得更详细点?
      

  5.   

    如果你想让主线程中关闭后,也把该线程关闭的话,设为后台进程. Thread.IsBackground = true