跨线程更新UI的方法也很多
使用系统自带的 MethodInvoker 委托也不失为一个好方法
举例1
void NetworkComms_ConnectionClosed(Connection conn)
{
if (this.InvokeRequired)
{
MethodInvoker del = delegate
{
NetworkComms_ConnectionClosed(conn);
};
this.Invoke(del);
return;
}
textBox1.Text = "";
textBox1.Text = "【连接断开:本地端点" + conn.ConnectionInfo.LocalEndPoint.ToString() + "远端点" + conn.ConnectionInfo.RemoteEndPoint.ToString() + "】";
}
例2:
private void UpdateLabel3(string text)
{
if (this.InvokeRequired)
{
MethodInvoker del = delegate
{
UpdateLabel3(text);
};
this.Invoke(del);
return;
}
label3.Text = text;
}