【发布时间】:2011-01-25 17:07:47
【问题描述】:
我在 WPF 中有一个组件,该组件使用边框,我使用边框背景属性来更改整个组件的背景颜色。
问题是,当我尝试使用计时器在两种不同颜色之间交替时,会抛出 invalidOperationException。 “调用线程无法访问此对象,因为不同的线程拥有它”。在计时器方法上,我将代码用于更改 Dispatcher 对象中的边框属性。
mainBorder.Dispatcher.BeginInvoke((ThreadStart)delegate()
{
mainBorder.BorderBrush = myBrush;
mainBorder.Background = myBrush;
}, null);
但是抛出异常,我不明白我做错了什么!例如在我做代码的同时
lbHolderServico.Dispatcher.BeginInvoke((ThreadStart)delegate()
{
lbHolderServico.Foreground = new SolidColorBrush(HoldLabelsFontColor);
}, null);
更改标签字体颜色,一切正常。
感谢和问候
【问题讨论】:
标签: .net wpf multithreading wpf-controls