gpt4 book ai didi

wpf - 如何将方法调用委托(delegate)给另一个线程?

转载 作者:行者123 更新时间:2023-12-03 13:22:41 25 4
gpt4 key购买 nike

我有以下问题:多线程 WPF 应用程序,模型 View 演示器实现。 Presenters 和 Views 属于一起是在单独的线程上创建的,并获得单独的 Dispatcher。现在有人从另一个线程调用 Presenter 上的方法。我正在拦截调用,现在开始出现问题:如果调用来自与演示者相同的线程,我想继续调用,否则在 Dispatcherthread 上调用调用,这样我就不需要关心UI 调用。
我已经阅读了有关 SynchronizationContext 的使用,但这似乎对我不起作用,因为如果调用线程不是 UI 线程,我无法比较这 2 个上下文。什么是可能的、有效的和优雅的解决方案?

最佳答案

if( presenterDispatcherObject.CheckAccess() )
Doit();
else
presenterDispatcherObject.BeginInvoke( DispatcherPriority.Normal, () => DoIt() );

关于wpf - 如何将方法调用委托(delegate)给另一个线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/340790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com