在线程中获取正确的WPF调度器在对象的构造函数中,我需要创建一个WPFmediaElement对象:m_videoMedia=newMediaElement();但是这个类也可以从其他线程实例化,所以我需要使用Dispatcher.Invoke(DispatcherPriority.Normal,(Action)(()=>{m_videoMedia=newMediaElement();}));但是如何为:s获取正确的Dispatcher实例您很可能只使用Dispatcher.CurrentDispatcher.Invoke...但是,如果由于某种原因这不起作用,您可以让您的类接收对Dispatcher的引用作为一部分它的构造函数。只需在构建时从UI线程传入Dispatcher.CurrentDispatcher。正如这个答案所解释的那样:您可以从静态应用程序实例获取UIDispatcher:Application.Current.Dispatcher您可能想先检查Application.Current是否为null,因为它可以在关闭序列期间被清除。另外,这里是Application类的文档。大多数WPF控件派生自DispatcherObject,它具有您需要的Dispatcher属性。所以基本上你会在你想使用的控件中使用调度程序。在这种情况下,例如,向Window添加一个MediaElement。如果将System.Windows.Forms引用添加到项目,则可以继续在WPF中使用Application.DoEvents()。以上就是C#学习教程:在线程中获取正确的WPF调度器分享的所有内容,如果对大家有用还需要详细了解C#学习教程,希望大家多多关注——本文来自网络收藏,不代表立场,如有侵权,请点击右边联系管理员删除。如需转载请注明出处:
