作者zerosystem (卡車)
看板C_Sharp
標題[問題] 寫多執行緒時Form.show失效
時間Thu Oct 11 19:24:08 2007
我正在寫一個server client系統
client連線後會開始run一個新的thread
if (myTcpClient != null)
return;
myTcpClient = new TcpClient();
myTcpClient.Connect(this.ServerAddress, 2345);
this.binWriter = new BinaryWriter(myTcpClient.GetStream());
new Thread(new ThreadStart(loginThread)).Start();
在loginThread時產生一個新的表單
this.newForm = new FormMain();
this.newForm.Show();
這時候newForm會無法show出
用 newForm.showDialog() 雖然可以解決
但是由於showDialog()的回傳值是DialogResult
而當我在跨執行緒存取控制項時,要用到
MethodInvoker miLogginShow = new MethodInvoker(this.FormLoggin.ShowDialog);
this.BeginInvoke(miLogginShow);
但是new MethodInvoker時要傳入一個void方法,所以這也不行
所以現在不知道到怎麼樣順利的讓新的Form給show出來
專題的程式卡在這裡,懇請高手指點...Orz
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.205.236
1F:推 holybible:笨方法,把 showDialog() 再多包一層 10/13 01:07
2F:推 zerosystem:謝謝,這樣的確是可以用了,不過我發現問題似乎在 10/13 21:00
3F:→ zerosystem:Thread上 10/13 21:00