我有一個線程檢查某個值的WPF應用程序。在某些情況下,我會彈出一個彈出框Window
以顯示一條消息。當我在線程創建這個彈出窗口,一個異常被彈出窗口的構造函數拋出:「調用線程必須是STA,因爲很多UI組件需要這個」在線程中創建WPF彈出窗口時出現錯誤「
「調用線程必須爲STA,因爲許多UI組件都需要這個。」
如何解決此錯誤?
這是我創建彈出窗口代碼:
// using System.Threading;
// using System.Windows.Threading;
Thread Messagethread = new Thread(new ThreadStart(delegate()
{
DispatcherOperation DispacherOP =
frmMassenger.Dispatcher.BeginInvoke(
DispatcherPriority.Normal,
new Action(delegate()
{
frmMassenger.Show();
}));
}));
Messagethread.Start();
我找到了問題的根本。我有一個計時器,在每個timer.tick中,檢查新消息,然後顯示每條新消息。定時器線程使我的工作如此艱難。 – Rev 2010-04-18 10:00:30
題外話:在WPF中,windows只是被稱爲:「windows」;不是「形式」。後一個術語在另一個UI框架Windows Forms中使用。 – stakx 2013-08-20 07:48:53
@stakx:謝謝 – Rev 2013-08-20 18:59:54