c#开启新线程,如果访问主线程的控件,利用委托

本文介绍了一个使用C#进行线程管理和用户界面(UI)实时更新的应用案例。通过具体代码示例展示了如何在后台线程中执行任务,并安全地更新主线程中的UI元素,避免跨线程操作引发的问题。

private void btnAnalyze_Click(object sender, EventArgs e)
{
if (treeList1.Nodes.Count < 2)
{
XtraMessageBox.Show("请选择至少两个节点!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
labelControl1.Visible = true;
labelControl1.Text = "正在进行分析....";
labelControl1.Refresh();
length = 0.0;
Thread thread = new Thread(new ThreadStart(Change));
thread.Start();
}

delegate void LabelChange();//如果需要传参数就在这里加参数

void Change()
{
if (labelControl1.InvokeRequired)
{
LabelChange label = new LabelChange(Change);
this.Invoke(label);如果传参数this.Invoke(label,x,x,x)
}
else
{
Run();
}
}

void Run()

{

。。。。。

}

转载于:https://www.cnblogs.com/weihongli/archive/2013/01/17/2863914.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值