可使用的WPF DispatchTimers的数量有任何限制

时间:2018-11-26 04:59:18

标签: c# .net wpf

我有一个WPF项目,其中显示了许多小型控件“小部件”(在某些情况下,这些控件可能总计超过数千个)

我现在希望添加一个小的正在进行中的动画,以滚动浏览文本字段之一,以在各种不同的值之间交换。所以我需要添加某种计时器来触发动画(或更改值,然后触发动画)

由于实例太多,我不确定是否要向控件类中添加DispatchTimer的更简洁的方法(因此控件的每个实例都有一个DispatchTimer实例),或者,如果这样做有一定的性能开销,则可以使用DispatchTimer的某个静态实例或注入的单个实例,然后只需在每个控件上调用一个方法即可。

我在这里总是非常小心,因为在Winform时代,句柄,用户对象等总是受到限制。

看着Source,我确实看到在第2982行创建了一个HandleRef

  SafeNativeMethods.SetTimer(
                    new HandleRef(this, _window.Value.Handle),
                    TIMERID_TIMERS,
                    delta);

但是,HandlRef似乎仅仅是一个简单的包装器。

我还没有检查所有源代码,想知道是否有人对此有所了解?

在此先感谢您的帮助

0 个答案:

没有答案