解决方案 »

  1.   

    不管你写程序,也不管你做什么,都不要调用Abort()这个方法。
      

  2.   

    不建议使用Abort()。
    建议添加一个私有变量bool _isContinue;当要结束或者退出时设置_isContinue=false,线程就会跳出死循环,让线程自行终止。以下是修改你的代码:while (_isContinue)
    {
       buf = new byte[512];
        this.serverSocket.Receive(buf);
        string receiveString = Encoding.UTF8.GetString(buf);
        //这里写得有问题,安全机制不允许这样跨线程调用主线程控件。自行度娘修改
         this.textBoxReceive.Text += "客户端说:" + receiveString + "\r\n";
    }
      

  3.   

    这还要问为什么么?调用Abort相当于你直接通过拔插头来关闭电脑。
      

  4.   

    今天刚学了一点多线程,abort是用来终止线程的。一般来说应该是能用的,之所以在你的程序中没起作用,可能是因为你的线程处于不正常的状态了。以前在学过windows api中,有TerminateThread好像就是可以终止线程的,但是也说了,状态会处于不确定
      

  5.   

    若要终止线程的运行,可以使用下面的方法:·线程函数返回(最好使用这种方法)。· 通过调用E x i t T h r e a d函数,线程将自行撤消(最好不要使用这种方法)。· 同一个进程或另一个进程中的线程调用Te r m i n a t e T h r e a d函数(应该尽量避免使用这种方法)。· 包含线程的进程终止运行(应该尽量避免使用这种方法)。
      

  6.   

    是的,很多人用电脑都把它当作家电,直接拔下插头或者按下接线板的开关就算关机了。也确实,在MSDOS下,似乎文明一点的做法就是退到DOS命令符(天知道有没有驻留程序还在运行),就直接关机。