C# 多线程操作界面主线程示例
程序员文章站
2022-06-10 21:01:07
...
#region ====== invoke ======
//定义一个委托用于跨线程访问方法
delegate void changeLbl(string str, bool bIsAdd);
//访问主线程
private void ChangeLbl(string str,bool bIsAdd)
{
////是否必须调用 Invoke 方法
//if (this.InvokeRequired)
//{
//invoke调用主线程
this.Invoke(new changeLbl(ChangeText), str, bIsAdd);
//}
//else
//{
//设置主线程[界面]的值
// label1.Text = str;
//}
}
//设置主线程[界面]的值
private void ChangeText(string str, bool bIsAdd)
{
if (bIsAdd)
{
lsbUserList.Items.Add(str);
}
else
{
lsbUserList.Items.Remove(str);
}
// string strTemp = str + "is connected!";
//lsbUserList.Items.Add(str);
//this.lsbUserList.Text = str;
//this.lsbUserList.Refresh();
}
#endregion ====== invoke ======