如何返回一个线程中的变量值
今天写程序的时候遇到一个问题,程序大致如下:
private static string receivedData;
private void SocketServer()
{
//建立Socket连接,接受数据
//将接收到的数据赋值给静态变量receivedData
string result=Encoding.ASCII.GetString(data,0,recv); //这地方的result已经测试过,确实有数据传进来
receivedData=result;
sock.close();
}
public void Test()
{
Thread testThread=new Thread(SocketServer);
testThread.Start();
Assert.AreEqual("abc",receivedData);
}
程序运行后,Assert一直是fail,receiveData一直是null。请教大侠们是怎么回事,receivedData是个静态变量,线程内result变量确实收到了数据,再赋值给receivedData,为什么还是null? 因为其他原因,SocketServer必须以线程的方式启动。