码迷,mamicode.com
首页 > 编程语言 > 详细

WPF线程调用UI元素

时间:2020-05-20 18:46:02      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:win   tar   mvvm   线程   app   报错   normal   code   current   

WPF开发中MVVM模式下,通过线程调用UI元素会报错,提示“调用线程必须为 STA,因为许多 UI 组件都需要。”。

解决方法有两个:

一、

public delegate void DeleFunc();
public void Func()
{
     //要调用的UI元素    
}
System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new DeleFunc(Func));

二、

Thread NetServer = new Thread(new ThreadStart(NetServerThreadFunc));
NetServer .SetApartmentState(ApartmentState.STA);
NetServer .IsBackground = true;
NetServer.Start();
System.Windows.Threading.Dispatcher.Run();

但是,如果是全屏界面,通过第二种方法调用出子窗体时Windows系统的任务栏也会显示,推荐使用第一种。

WPF线程调用UI元素

标签:win   tar   mvvm   线程   app   报错   normal   code   current   

原文地址:https://www.cnblogs.com/lskFighting/p/12925169.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!