1
我有一個WPF應用程序,當點擊一個按鈕時,一個新窗口(BrowserWindow
)被實例化,加載全屏幕WebBrowser
控件。窗口像這樣在第二個線程上啓動。獨立窗口線程關閉
private void BrowserThreadStart(BrowserWindow browser, String address)
{
browser = new BrowserWindow();
browser.LoadPage(address);
browser.Show();
System.Windows.Threading.Dispatcher.Run();
}
private void Press(object sender, MouseButtonEventArgs e)
{
Thread mainBrowserThread = new Thread(() => BrowserThreadStart(myBrowser, "http://www.google.com"));
mainBrowserThread.SetApartmentState(ApartmentState.STA);
mainBrowserThread.IsBackground = true;
mainBrowserThread.Start();
}
這樣做效果很好。
基於此,我的MainWindow
以編程方式隱藏或關閉運行在單獨線程上的BrowserWindow
實例的正確方法是什麼?
我注意到我的主線程(在主窗口),該BrowserWindow myBrowser
爲空(即使我能看到它,並在第二個線程上運行。
謝謝。我會試試這個。有點偏離主題的問題,但有一個術語「()=>」語法。從來沒有見過類似的東西,並試圖破譯什麼樣的操作員/操作以什麼順序進行。 – Ternary
@Ternary,它被稱爲[lambda表達式](http://msdn.microsoft.com/en-us/library/bb397687.aspx)。 – David