项目场景:
wpf UI 更新
问题描述
wpf UI 更新
APP 中接收数据代码:
<StackPanel>
<Label x:Name="lblHello">欢迎你光临WPF的世界!</Label>
<Button Name="btnThd" Click="btnThd_Click" >多线程同步调用</Button>
<Button Name="btnAppBeginInvoke" Click="btnAppBeginInvoke_Click" >BeginInvoke 异步调用</Button>
</StackPanel>
private void btnThd_Click(object sender, RoutedEventArgs e)
{
Thread thread = new Thread(ModifyUI);
thread.Start();
}
private void ModifyUI()
{
// 模拟一些工作正在进行
Thread.Sleep(TimeSpan.FromSeconds(2));
this.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart)delegate (){
lblHello.Content = "欢迎你光临WPF的世界,Dispatche 同步方法 !!";});
}
private void btnAppBeginInvoke_Click(object sender, RoutedEventArgs e)
{
//new Thread(() =>
//{
// Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
// new Action(() =>
// {
// Thread.Sleep(TimeSpan.FromSeconds(2));
// this.lblHello.Content = "欢迎你光临WPF的世界,Dispatche 异步方法!!" + DateTime.Now.ToString();
// }));
//}).Start();
new Thread(() =>
{
this.Dispatcher.Invoke(new Action(() =>
{
this.lblHello.Content = "欢迎你光临WPF的世界,Dispatche 异步方法!!" + DateTime.Now.ToString();}));
}).Start();
}