您的位置:首页 > 产品设计 > UI/UE

c#中多线程刷新UI

2014-12-07 13:39 381 查看
创建后台线程刷新UI:

//创建代理
private delegate void DelegateRefreshUI();

//真正执行刷新UI的函数
private void freshUI()
{
//刷新UI
}

//刷新UI函数
private void RefreshUI()
{
//每隔5秒刷新UI
while(true)
{
Thread.Sleep(5000);
Dispatcher.Invoke(DispatcherPriority.Normal,new DelegateRefreshUI(freshUI));
}
}

//创建后台刷新UI线程
Thread t = new Thread(new ThreadStart(RefreshUI));
t.IsBackground = true;
t.Start();


多线程中实时刷新UI:

//创建代理
public delegate void delegateSetLabelTxt(string strTxt);
public delegateSetLabelTxt setLabelTxt;

//设置Label的text
private void SetTxt(string strTxt)
{
if(this.label1.InvokeRequired)
{
this.setLabelTxt += new delegateSetLabelTxt(SetTxt);
this.Invoke(setLabelTxt, new object[] { strTxt });
}
else
{
this.label1.Text = strTxt;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: