我就要告诉你,放到另外一个线程去执行c.ConvertF(a,b)!
你是不是就不给我分了?
这里原因编译器都说的很清楚了,
你可以在clientSocket.Shutdown(SocketShutdown.Both)前边,再添加一段等待线程结束的代码。
C++中可以用WaitSingleObject,C#里边用什么我还真不知道,你google一下。
你是不是就不给我分了?
这里原因编译器都说的很清楚了,
你可以在clientSocket.Shutdown(SocketShutdown.Both)前边,再添加一段等待线程结束的代码。
C++中可以用WaitSingleObject,C#里边用什么我还真不知道,你google一下。
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();
这样我还怎样把结果发送会客户端呢
这个帖子有说到怎么写等待线程结束的代码。你参考下
clientSocket.Shutdown(SocketShutdown.Both);
clientSocket.Close(); 执行前,调用ConvertF(不论是否放在独立进程中,都会出错),在那两句执行后才调用就没事.知道什么原因吗
问题多半在这个里边。