c#线程接收处理问题,接收线程接收到的信息如何返回给调用它的线程?求高手解答。
//接收线程publicvoidRecieveMessThread(){receiveThread=newThread(Receiving);receiveThread....
//接收线程
public void RecieveMessThread()
{
receiveThread = new Thread(Receiving);
receiveThread.Start();
}
//不停地接收信息
private void Receiving()
{
while (true)
{
try
{
byte[] recieveBytes = new byte[receiveSocket.ReceiveBufferSize];
receiveSocket.Receive(recieveBytes, recieveBytes.Length, 0); //接收
string receiveMessString = Encoding.UTF8.GetString(recieveBytes);//接收到的信息如何返回调用当前线程的类??
}
catch (Exception e)
{
//do nothing
}
}
} 展开
public void RecieveMessThread()
{
receiveThread = new Thread(Receiving);
receiveThread.Start();
}
//不停地接收信息
private void Receiving()
{
while (true)
{
try
{
byte[] recieveBytes = new byte[receiveSocket.ReceiveBufferSize];
receiveSocket.Receive(recieveBytes, recieveBytes.Length, 0); //接收
string receiveMessString = Encoding.UTF8.GetString(recieveBytes);//接收到的信息如何返回调用当前线程的类??
}
catch (Exception e)
{
//do nothing
}
}
} 展开
1个回答
展开全部
用委托就可以挂线程了。
public delegate void mydelegate(string rstr);
private void res(string str)
{
//接受到消息后就会调用这个函数,str就是传回的接受的数据,可以做处理。
}
//写在接受数据下面
BeginInvoke(new mydelegate(res), receiveMessString);
public delegate void mydelegate(string rstr);
private void res(string str)
{
//接受到消息后就会调用这个函数,str就是传回的接受的数据,可以做处理。
}
//写在接受数据下面
BeginInvoke(new mydelegate(res), receiveMessString);
追问
菜鸟中,,,,举一个详细的例子吧/?
追答
上面2个写在主线程中,BeginInvoke写在接受的线程中,每次接受到数据后都会触发res那个函数。
比如每次接受数据后,在res里面加 MessageBox.Show(str);每次接受到数据就会弹出框弹出来了啊。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询