将参数传递给计时器事件

时间:2012-11-26 16:09:32

标签: c# wpf

我正在尝试创建一个动画,在我的应用程序布局中在画布上移动一些图像。

画布名为layout,属于主窗口,计时器正在调用事件Animation.Clouds(layout, 1)。尝试此操作时,我收到有关该对象由另一个线程拥有的错误。这让我相信原因是计时器无法通过layout的上下文,导致错误。

如何解决此问题并将layout传递给计时器以使动画生效?

2 个答案:

答案 0 :(得分:1)

使用DispatcherTimer代替,它会在创建的调度程序线程中触发一个勾号

答案 1 :(得分:0)

问题是,当您在UI线程上时,您可以更新UI元素。 Timer事件在另一个线程上调用。

在Windows.Forms中,您可以使用BeginInvoke。我确信WPF有类似的东西。