如何以线程安全的方式访问c#WPF控件?
我尝试过使用MSDN中的示例,但它们似乎只适用于Windows窗体。 例如,使用.InvokeRequired的方法依赖于窗体控件,但是此方法不适用于WPF控件。 Backgound工作器方法也会抛出InvalidOperationException
–
调用线程无法访问此对象,因为另一个线程拥有它。
那么如何在WPF环境中完成呢?
您只想使用Dispatcher.Invoke
方法(或异步等效的Dispatcher.BeginInvoke
),它将封送对主WPF UI线程的调用。
DependencyObject
类包含Dispatcher
属性,这意味着从此类inheritance的所有控件和其他对象也以类似于WinForms的方式提供此属性。 此外, Application
对象提供对调度Application
访问。
示例用法可能如下(在Window
/ UserControl
代码隐藏中):
上述就是C#学习教程:如何以线程安全的方式访问c#WPF控件?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
this.Dispatcher.Invoke((Action)(() => { ... }));
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1014880.html