WPF 依赖属性多线程赋值
程序员文章站
2022-06-08 18:07:12
...
问题描述
当依赖属性被页面绑定后,子线程对依赖属性赋值时会出现错误:调用线程无法访问此对象,因为另一个线程拥有该对象。
解决方法
使用CheckAccess()判断调用线程是否可以访问此对象,如果不可以,使用Dispatcher的invoke方法。
代码示例
Action act =()=>{ m_ComputerInfo.MacId = macInfo; };
//如果调用线程可以访问此对象,则为 true;否则,为 false。
//m_ComputerInfo继承至DependencyObject
if (m_ComputerInfo.CheckAccess())
{
act();
}
else
{
m_ComputerInfo.Dispatcher.Invoke(
System.Windows.Threading.DispatcherPriority.Normal,act);
}
上一篇: 糖尿病不能吃的蔬菜都有哪些