? ? ?開(kāi)發(fā)工具的時(shí)候,需要在某個(gè)按鈕的click事件中循環(huán)處理事宜,然后每條處理結(jié)果需要反饋在UI界面上矢否。
? ? ?如果循環(huán)時(shí)間很長(zhǎng),很容易界面出現(xiàn)卡死情況锐朴。
? ? ?因此想到的就是新建一個(gè)線程兴喂,然后在線程中通過(guò)委托去更新UI界面上的內(nèi)容。代碼如下焚志,以便以后查閱衣迷。
? ? //創(chuàng)建一個(gè)委托,是為訪問(wèn)TextBox控件服務(wù)的酱酬。
? ? public delegate void UpdateTxt(String? msg);
? ? //定義一個(gè)委托變量
? ? 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);
//啟動(dòng)線程
Thread objThread = new Thread(new ThreadStart(delegate
{
ThreadMethodTxt();
}));
objThread.Start();