111,057
社区成员
![](https://csdnimg.cn/release/cmsfe/public/img/topic.427195d5.png)
![](https://csdnimg.cn/release/cmsfe/public/img/me.40a70ab0.png)
![](https://csdnimg.cn/release/cmsfe/public/img/task.87b52881.png)
![](https://csdnimg.cn/release/cmsfe/public/img/share-circle.3e0b7822.png)
private void Form1_Load(object sender, EventArgs e)
{
//多线程
AAA= new Thread(new ThreadStart(BBB));
AAA.Start();
}
//接收数据方法
public void BBB()
{
while (true)
{
IPEndPoint IpSender = new IPEndPoint(IPAddress.Any, 0);
EndPoint tmpRemote = (EndPoint)IpSender;
byte[] recive = new byte[1024];
try
{
int recv = bacnet_master_socket.ReceiveFrom(recive, ref tmpRemote);
}
catch (Exception efe)
{
label1.Text = efe.ToString();
}
}
}
delegate void MyDele();
MyDele del;
private void button1_Click(object sender, EventArgs e)
{
del=new MyDele(BBB);
del.Invoke();
}
public void BBB()
{
while (true)
{
button1.Text = DateTime.Now.ToString();
Application.DoEvents();
}
}
上面的错了
private delegate void MyDelegateUI();
if (label1.InvokeRequired)
{
MyDelegateUI d = delegate
{
label1.Text = efe.ToString();
};
label1.Invoke(d);
}
else
{
label1.Text = efe.ToString();
}
//catch (Exception efe)
//{
label1.Text = efe.ToString();
//}
//改成
catch (Exception efe)
{
setLabel(efe.ToString());
}
//setLabel方法及委托
delegate void delegateSetLabel(string str);
void setLabel(string str)
{
if (this.InvokeRequired)
{
Invoke(new delegateSetLabel(setLabel), new object[] { str });
}
else
{
label1.Text = efe.ToString();
}
}