寻求WPF DispatcherHooks会计的解释

时间:2014-12-06 17:23:00

标签: wpf dispatcher

我正在尝试使用DispatcherHooks来测量UI线程调度程序的队列长度,其代码类似于this post。我进一步完善了钩子以优先跟踪操作,并发现完成次数+中止次数远远大于某些优先级的已发布操作次数。

例如,在五秒采样间隔中,我看到以后台优先级发布的7个操作,但超过1000个完成。对于渲染优先级,它几乎就像每个帖子导致两次完成一样。

其他类别看起来合理,但缺乏对渲染/背景的解释,它会对其他优先级的准确性/相关性产生影响。这也不是优先事项发生变化的问题,因为整体总数没有变化。

任何人都可以解释我所看到的内容吗?

1 个答案:

答案 0 :(得分:1)

通过考虑"非活动"来解决这个问题。优先。看起来当背景和渲染操作的许多(全部?)排队时,他们在发布时的优先级是"非活动",但他们在完成时的优先级反映了操作的实际优先级,因此整体情况如下:队列长度是合理的,但看起来我无法按优先级获得粒度(对于我的场景可能没问题)。