我就要告诉你,放到另外一个线程去执行c.ConvertF(a,b)!
你是不是就不给我分了?
这里原因编译器都说的很清楚了,
你可以在clientSocket.Shutdown(SocketShutdown.Both)前边,再添加一段等待线程结束的代码。
C++中可以用WaitSingleObject,C#里边用什么我还真不知道,你google一下。

解决方案 »

  1.   

    现在的问题是,把到放到另一个线程里面去执行的话,代码变为如下:
    public  void  ServerThreadProc()  
    {  
         try  
         {  
               clientSocket  =  serverSocket.Accept();  
     
               //接收客户端发来的数据  
               byte[]  recvBytes  =  new  byte[1024];  
               int  bytes  =  0;  
               bytes  =  clientSocket.Receive(recvBytes,  0,  clientSocket.Available,    SocketFlags.None);  
               string  strRequest  =  System.Text.Encoding.Unicode.GetString(recvBytes,  0,  bytes);  
                 
               ProcessParams(strRequest);        //从strRequest中提取必要的参数  
                 
               Thread thread=new Thread(new ThreadStart(ConvertF));
               thread.Start();
                 
               clientSocket.Shutdown(SocketShutdown.Both);  
               clientSocket.Close();  
    }  
    catch  (Exception  ex)  
    {  
           if  (clientSocket.Connected)  
           {  
                 clientSocket.Close();  
           }  
    }  
    }
    这样的话,在线程还没执行完时,就已经执行了 clientSocket.ShutdownSocketShutdown.Both);  
    clientSocket.Close();  
    这样我还怎样把结果发送会客户端呢
      

  2.   

    http://topic.csdn.net/t/20060302/14/4588245.html
    这个帖子有说到怎么写等待线程结束的代码。你参考下
      

  3.   

    试了一下,发觉只要是在           
    clientSocket.Shutdown(SocketShutdown.Both);  
    clientSocket.Close(); 执行前,调用ConvertF(不论是否放在独立进程中,都会出错),在那两句执行后才调用就没事.知道什么原因吗
      

  4.   

    不知道。我又不知道你的c.Convert是怎么写的……
    问题多半在这个里边。