3
我正在寫一個測試應用程序,我需要將窗體放在單獨的線程上。Form.Owner從.NET 3.5中單獨的線程設置
所以,如果我從主線程創建窗體窗口並設置其.Owner =這一切正常。 如果我產生線程UIThread並從新線程設置所有者,我會得到異常。 由於您無法直接訪問表單,因此獲取異常是可以理解的。 我的問題是有消息,我需要趕上主線程並做BeginInvoke推它在消息泵?由於UIForm ShowInTaskbar設置爲false,我需要單擊任務欄中的主應用程序,並使用其所有子窗口進行恢復。
private void UIThread() // New Thread call
{
UIForm form = new UIForm();
form.ShowInTaskbar = false;
form.Owner = this;
Application.Run(form); // Expected Exception
}
你必須pinvoke SetParent來解決這個問題。最好的辦法是不要這樣做。 – 2011-03-01 22:59:57