我在非常复杂的WPF UI中面临渲染问题,其中包含许多转换器(IValueConverter,IMultiValueConverter)。
我想知道转换器是否可以参与其中。
有谁知道WPF转换器是如何工作的? 它们是并行执行然后与UI线程同步的吗?或者是否存在某种处理每个转换器的foreach循环?
答案 0 :(得分:8)
转换器在UI线程上执行,您可以通过使用Thread.Sleep(10000)
之类的东西来阻止线程来测试它。 UI在调度程序队列中进行管理,有关详细信息,请参阅threading model reference,对绑定的更新将推送到该队列中。如果更新了绑定,则会调用转换器,它们通常不会同时被调用。
(另见下面的好评)