我正在使用WPF。我使用Dispatcher在主xaml窗口中運行線程進程。用STA線程錯誤打開另一個xaml窗口
然後我得到這個錯誤打開另一WPF展示顯示3D圖像的結果:
{「調用線程必須爲STA,因爲許多UI組件都需要 這個」}
這是我如何開始一個新的窗口:在一些POS加入這個
void DisplayFormThread()
{
IResult result = _mainWindow.GetResult();
ResultView resultView = new ResultView (result);
resultView.Show();
}
我試圖解決這個問題ts在stackoverflow但它沒有幫助:
ThreadStart start = delegate()
{
DispatcherOperation op = Dispatcher.CurrentDispatcher.BeginInvoke(
new delegateNewWindow(DisplayFormThread), DispatcherPriority.Background);
DispatcherOperationStatus status = op.Status;
while (status != DispatcherOperationStatus.Completed)
{
status = op.Wait(TimeSpan.FromMilliseconds(1000));
if (status == DispatcherOperationStatus.Aborted)
{
// Alert Someone
}
}
};
// Create the thread and kick it started!
Thread thread = new Thread(start);
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
我該如何解決問題?
在此先感謝。
感謝您的回答。我已經試過這個,因爲我也在我的問題中加入了這個。但是,在新窗口中的結果未顯示... – olidev 2012-04-23 08:58:03