Csharp/C#教程:如何以线程安全的方式访问c#WPF控件?分享


如何以线程安全的方式访问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

(0)
上一篇 2021年12月31日
下一篇 2021年12月31日

精彩推荐