线程里修改UI要使用Dispatcher去实现功能,不然要线程不安全
1.修改一个小控件的内容
//声明一个委托
delegate void SetTextBlockTextDelegate(TextBlock txtblk, string text);
//委托调用的实体方法
void SetTextBlockText(TextBlock txtblk, string text)
{
txtblk.Text = text;
}
//此方法线程里调用
private void doUpdate()
{
tB1.Dispatcher.BeginInvoke(new SetTextBlockTextDelegate(SetTextBlockText), tB1, "
updated ui" );
}
2.修改多条数据 delegate void MyDelegate();
public void updateUI() {
App.SongInfoViewModel.updateNewSongItemDownState("3131", SongInfo.DOWNLOAD_OVER);
}
//此方法线程里调用
public void updateUI2() {
this.Dispatcher.BeginInvoke(new MyDelegate(updateUI));
}