У меня есть приложение 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
, работающий в отдельном потоке?
Я заметил, что в моем главном потоке (в MainWindow) BrowserWindow myBrowser
равен нулю (хотя я вижу, что он запущен во втором потоке.