【WPF】调用线程必须为STA,因为许多UI组件都需要
生活随笔
收集整理的這篇文章主要介紹了
【WPF】调用线程必须为STA,因为许多UI组件都需要
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
在進行WPF界面跳轉時,當我登陸完成后,需要跳轉到主界面,遇到了一下這個問題:調用線程必須為STA,因為許多UI組件都需要, 困惱了小編半天。終于自己敢去嘗試,解決了。
解決辦法:
在登陸結果處理時,加入Dispatcher,Dispatcher的作用是用于管理線程工作項隊列,類似于Win32中的消息隊列,Dispatcher的內部函數,仍然調用了傳統的創建窗口類,創建窗口,建立消息泵等操作。
Dispatcher可以參考學習一下。
/// <summary>/// 登錄結果處理/// </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();}));}總結: 勇于嘗試,不斷總結,要學習的東西很多很多。
總結
以上是生活随笔為你收集整理的【WPF】调用线程必须为STA,因为许多UI组件都需要的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 韩家炜课题组重磅发文:文本分类只需标签名
- 下一篇: java设计模式2,开闭原则