开发工具的时候,需要在某个按钮的click事件中循环处理事宜,然后每条处理结果需要反馈在UI界面上。
如果循环时间很长,很容易界面出现卡死情况。
因此想到的就是新建一个线程,然后在线程中通过委托去更新UI界面上的内容。代码如下,以便以后查阅。
//创建一个委托,是为访问TextBox控件服务的。
public delegate void UpdateTxt(String msg);
//定义一个委托变量
public UpdateTxt updateTxt;
//修改TextBox值的方法。
public void UpdateTxtMethod(String msg)
{
rbSesultAll.Text = msg;
}
//线程中触发更新UI界面
public void ThreadMethodTxt()
{
while (!exit)
{
//业务
this.BeginInvoke(updateTxt, outstring);
Thread.Sleep(100);
}
}
//初始化
updateTxt = new UpdateTxt(UpdateTxtMethod);
//启动线程
Thread objThread = new Thread(new ThreadStart(delegate
{
ThreadMethodTxt();
}));
objThread.Start();