調用線程必須為STA,因為許多UI組件都需要


當我在使用Cefsharp后,在前端使用JS調用.NET公開類時,遇到了這個問題:調用線程必須為STA,因為許多UI組件都需要, 困惱了小編半天。終於自己敢去嘗試,解決了。

解決辦法

在要執行代碼的外層加入Dispatcher,Dispatcher的作用是用於管理線程工作項隊列,類似於Win32中的消息隊列,Dispatcher的內部函數,仍然調用了傳統的創建窗口類,創建窗口,建立消息泵等操作。
可以參考MSDN官方文檔中的Dispatcher Class

Application.Current.Dispatcher.Invoke((Action)(() => { new ErrorWindow() { TitleMessage = "傲慢與偏見", Message = msg }.ShowDialog(); }));

完美解決


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM