? ? ?開發(fā)工具的時候,需要在某個按鈕的click事件中循環(huán)處理事宜,然后每條處理結(jié)果需要反饋在UI界面上。
? ? ?如果循環(huán)時間很長,很容易界面出現(xiàn)卡死情況。
? ? ?因此想到的就是新建一個線程,然后在線程中通過委托去更新UI界面上的內(nèi)容。代碼如下,以便以后查閱。
? ? //創(chuàng)建一個委托,是為訪問TextBox控件服務(wù)的。
? ? public delegate void UpdateTxt(String? msg);
? ? //定義一個委托變量
? ? public UpdateTxt updateTxt;
? ? //修改TextBox值的方法。
public void UpdateTxtMethod(String msg)
{
rbSesultAll.Text = msg;
}
//線程中觸發(fā)更新UI界面
public void ThreadMethodTxt()
{
while (!exit)
{
//業(yè)務(wù)
this.BeginInvoke(updateTxt, outstring);
Thread.Sleep(100);
}
}
//初始化
updateTxt = new UpdateTxt(UpdateTxtMethod);
//啟動線程
Thread objThread = new Thread(new ThreadStart(delegate
{
ThreadMethodTxt();
}));
objThread.Start();