【WPF】调用线程必须为STA,因为许多UI组件都需要
生活随笔
收集整理的這篇文章主要介紹了
【WPF】调用线程必须为STA,因为许多UI组件都需要
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前言
在進(jìn)行WPF界面跳轉(zhuǎn)時(shí),當(dāng)我登陸完成后,需要跳轉(zhuǎn)到主界面,遇到了一下這個(gè)問(wèn)題:調(diào)用線程必須為STA,因?yàn)樵S多UI組件都需要, 困惱了小編半天。終于自己敢去嘗試,解決了。
解決辦法:
在登陸結(jié)果處理時(shí),加入Dispatcher,Dispatcher的作用是用于管理線程工作項(xiàng)隊(duì)列,類似于Win32中的消息隊(duì)列,Dispatcher的內(nèi)部函數(shù),仍然調(diào)用了傳統(tǒng)的創(chuàng)建窗口類,創(chuàng)建窗口,建立消息泵等操作。
Dispatcher可以參考學(xué)習(xí)一下。
/// <summary>/// 登錄結(jié)果處理/// </summary>/// <param name="result"></param>private void HandleLoginResult(NIM.NIMLoginResult result){DemoTrace.WriteLine(result.LoginStep.ToString());App.Current.Dispatcher.Invoke((Action)(() =>{MessageBox.Show("登錄成功");MainWindow windows = new MainWindow();this.Hide();windows.Show();}));}總結(jié): 勇于嘗試,不斷總結(jié),要學(xué)習(xí)的東西很多很多。
總結(jié)
以上是生活随笔為你收集整理的【WPF】调用线程必须为STA,因为许多UI组件都需要的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 韩家炜课题组重磅发文:文本分类只需标签名
- 下一篇: SQL Server中常用全局变量介绍