System.InvalidOperationException:“调用线程必须为 STA,因为许多 UI 组件都需要。” 这个异常通常发生在尝试在非单线程单元(STA,Single-Threaded Apartment)线程中访问某些 UI 组件时。在 .NET 中,许多 UI 框架(如 Windows Forms 和 WPF)要求与其交互的线程必须是 STA 线程。这是因为这些 UI 框架不是线程安全的...
调用线程必须为STA,因为许多UI组件都需要。 Thread NetServer = new Thread(new ThreadStart(NetServerThreadFunc)); NetServer.Start(); WPF工程里,此线程不可以操作UI元素,如果在线程中调用了UI处理,则会弹出如上错误。避免方法如下: 1、public delegate void DeleFunc(); public void Func() { //使用ui元...
WPF中,代码中准备控制控件内容时,有时会报错:“ 调用线程必须为 STA,因为许多 UI 组件都需要 ”。 如在winform下面,使用多线程时,控件的值读取是可以的,但如果要更改,那么就必须进行一些特别的处理。WPF中也一样。 首先,WPF中,当报上面那个错误时,代码可以改成类似以下: void authOK(AuthorizationResult auth) ...
那么WPF里面,有个所谓UI线程,后台代码不能直接操作UI控件,需要控制,就要通过这个Dispatcher。
通常,如果编写测试很困难,这表明代码应该设计得更好。
这样就将执行用的线程池切换到 STA 线程池,而且使 HttpContext 和其他内置对象可用于 COM 对象。前者...
调用线程必须为 STA,因为许多 UI 组件都需要 2011-04-15 16:30 − Thread NetServer = new Thread(new ThreadStart(NetServerThreadFunc)); NetServer.Start(); WPF工程里,此线程不可以操作UI元素,避免方法如下: 1、public ... 山河 0 1457 [wpf]多窗口中的Timer,会出现必须加STA的一句错误:调用线...
2019-12-23 16:30 −在开发WPF应用时出现:”调用线程无法访问此对象,因为另一个线程拥有该对象。“ 是因为UI线程是WPF应用的主线程,若尝试子线程更新UI线程应使用Dispatcher.BeginInvoke()或者Invoke()方法。 Dispatcher.BeginInvoke() //异... Stay627 ...
调用线程必须为 STA,因为许多 UI 组件都需要 50 请教大家一个问题:在aspx页面上new了一个WPF控件,比如ContentControl,执行后报异常,异常信息如下:调用线程必须为STA,因为许多UI组件都需要。有遇到过该问题的没... 请教大家一个问题:在aspx页面上new了一个WPF控件,比如ContentControl,执行后报异常,异常信息如下:...
1、public delegate void DeleFunc(); public void Func() { //使用ui元素 } 线程函数中做如此调用: System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new DeleFunc(Func)); 即可。 2、 Thread NetServer = new Thread(new ThreadStart(NetServerThreadFunc...