在这种情况下,异常信息指出调用线程必须为STA(单线程单元),这是因为许多UI组件(如Windows Forms控件和WPF控件)都是基于COM构建的,它们依赖于STA线程模型来确保线程安全。 阐述STA线程和UI组件的关系: STA(Single-threaded Apartment)是一种COM线程模型,其中每个线程都有自己的消息队列。在STA模型中,UI组件的创建、访...
调用线程必须为 STA,因为许多 UI 组件都需要。 1 2 3 4 5 6 7 8 ThreadPool.QueueUserWorkItem(delegate { SynchronizationContext.SetSynchronizationContext(newDispatcherSynchronizationContext(System.Windows.Application.Current.Dispatcher)); SynchronizationContext.Current.Post(pl => { },null); }); 后台代码不...
异常: 引发了异常: PresentationCore.dll 中的“System.InvalidOperationException”(“调用线程必须为 STA,因为许多 UI 组件都需要。”)。引发了异常: PresentationCore.dll 中的“System.InvalidOperationException”(“调用线程必须为 STA,因为许多 UI 组件都需要。”) 引起异常就下这句: titleLab.Content = "通话中...
STA 模型意味着可以在任何线程上创建窗口,但窗口一旦创建后就不能切换线程,并且对它的所有函数调用都必...
通常,如果编写测试很困难,这表明代码应该设计得更好。
调用线程必须为STA,因为许多UI组件都需要。 Thread NetServer = new Thread(new ThreadStart(NetServerThreadFunc)); NetServer.Start(); WPF工程里,此线程不可以操作UI元素,如果在线程中调用了UI处理,则会弹出如上错误。避免方法如下: 1、public delegate void DeleFunc();...
WPF中,代码中准备控制控件内容时,有时会报错:“ 调用线程必须为 STA,因为许多 UI 组件都需要 ”。 如在winform下面,使用多线程时,控件的值读取是可以的,但如果要更改,那么就必须进行一些特别的处理。WPF中也一样。 首先,WPF中,当报上面那个错误时,代码可以改成类似以下: ...
2011-04-15 16:30 −Thread NetServer = new Thread(new ThreadStart(NetServerThreadFunc)); NetServer.Start(); WPF工程里,此线程不可以操作UI元素,避免方法如下: 1、public d... 山河 0 1470 WPF 之 调用线程必须为 STA,因为许多 UI 组件都需要 ...
WPF 之 调用线程必须为 STA,因为许多 UI 组件都需要 2019-01-02 13:56 −WPF中,代码中准备控制控件内容时,有时会报错:“ 调用线程必须为 STA,因为许多 UI 组件都需要 ”。 如在winform下面,使用多线程时,控件的值读取是可以的,但如果要更改,那么就必须进行一些特别的处理。WPF中也一样。 首先,WPF中,当...
调用线程必须为 STA,因为许多 UI 组件都需要 Thread NetServer = new Thread(new ThreadStart(NetServerThreadFunc)); NetServer.Start(); WPF工程里,此线程不可以操作UI元素,避免方法如下: 1、public delegate void DeleFunc(); public void Func()