FastAsia

WPF中使用线程操作控件,按平常的操作方法操作的话会报异常:调用线程无法访问此对象,因为另一个线程拥有该对象。所以我们要使用Dispatcher类的BeginInvoke()与Invoke()方法。BeginInvoke()异步执行,不等待委托结束就更新,Invoke()同步执行,需等待委托执行完。

有一个Lable控件:

<Label x:Name="test" Content="测试"></Label>

1.读取控件的值:

string lblContent ="";

Dispatcher.Invoke(new Action(delegate
{
       lblContent=test.Content.ToString();

      //如果有其他操作也可以写在这里
}));

2.给控件赋值:

Dispatcher.Invoke(new Action(delegate
{
       test.Content="给控件赋值";

      //如果有其他操作也可以写在这里
}));

勿忘初心,方得始终。

分类:

技术点:

WPF

相关文章:

  • 2021-09-14
  • 2021-06-24
  • 2021-07-05
  • 2021-12-14
  • 2021-09-08
  • 2021-09-08
  • 2021-05-31
  • 2022-01-22
猜你喜欢
  • 2021-11-19
  • 2021-10-21
  • 2021-12-28
  • 2022-01-16
  • 2022-01-23
  • 2021-11-30
  • 2021-11-29
相关资源
相似解决方案