UI树:
目前,其中一个按钮(见上文)上的点击处理程序似乎需要足够长的时间(它会对viewmodel进行一系列更新,这会导致各种其他UI更改,因此需要在UI线程AFAICT上)它经常导致拖动事件开始。
从点击处理程序中获取此代码的第一个想法是创建一个没有DoWork的BackgroundWorker,并将其全部放在RunWorkerCompleted中。然而,这感觉就像是滥用BackgroundWorker和重量级的。我想要的效果类似于同一个线程(UI线程)上的PostThreadMessage,但我没有看到任何关于如何快速执行此操作的内容。
我当然可以使用线程池甚至是一个新线程排队,然后让它将其封装回UI线程,但这似乎又是滥用。
答案 0 :(得分:1)
我认为具有低DispatcherPriority的Dispatcher.BeginInvoke的行为几乎与PostThreadMessage类似。