1
버튼을 클릭하면 컨트롤을로드하는 새 창 (BrowserWindow
)이 인스턴스화되는 WPF 앱이 있습니다. 창은 이와 같은 두 번째 스레드에서 시작됩니다.별도의 창 스레드 닫기
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
내가 그것을 위로 두 번째 스레드에서 실행을 볼 수 있지만 (null 인 (MainWindow를에서) 내 주 스레드에서 나타났습니다.
감사합니다. 나는 이것을 시도 할 것이다. 주제 질문에서 다소 벗어 났지만 "() =>"구문에 대한 용어가 있습니다. 전에는 그런 것을 본 적이 없으며 어떤 순서로 어떤 운영자/작업이 진행되고 있는지 해독하려고합니다. – Ternary
@Ternary, [lambda expression]이라고합니다 (http://msdn.microsoft.com/en-us/library/bb397687.aspx). – David