FORM1有一个线程负责从一个JAVA程序中接收数据(利用了UDP套接字进行接收)代码如下
new Thread(() =>
{
while(true)
{
byte[] data = new byte[10240];
length=udpServer.ReceiveFrom(data,ref Remote);
strData=Encoding.GetEncoding("GBK").GetString(data,0,length);
Invoke(new ThreadStart(delegare()
{
textBox1.AppendText(strData+Environment.NewLine);
}));
}
}).Start();
其中strData就是从java程序中接受到的数据,strData处于一直更新的状态,strData每接收到一条信息,通过invoke将strData在FORM1的textbox1里进行显示,AppendText是将新收到的信息另起一行进行添加,因此,可以看到所有接收到的信息。
同时FORM1里有一个button,每次点击button可以新建一个FORM2,FOMR2里也有一个textbox2。
我现在想做的就是点击两次FORM1里的button新建两个FORM2,让每个FORM2里的textbox2都能与FORM1里的textbox1同步显示strData。
我的想法是每次新建一个FORM2的同时新建一个线程,目的是想在两个FORM2里独立处理接收到的strData数据。
我写了一部分程序:
FORM1里定义:
FORM2 f2;
FORM1里的button:
privata void button(object sender, EventArgs e)
{
f2=new Form2();
f2.Show();
Thread t=new Thread(ShowData);
t.Start();
}
private void ShowData()
{
???
}
问题一:请问ShowDats这里应该怎么写才能将strData传给FORM2啊,如果是定值我知道怎么写,关键strData是会一直变化的!
还有就是
f2=new Form2();
f2.Show();
Thread t=new Thread(ShowData);
t.Start();
问题二:这里没有实现新建一个FORM2就在新建的线程中独立处理strData,请问应该如何处理啊
求各位大神帮帮忙 谢谢了
------解决方案--------------------
http://bbs.csdn.net/topics/360140208