[問題] 寫多執行緒時Form.show失效

看板C_Sharp作者 (卡車)時間18年前 (2007/10/11 19:24), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/1
我正在寫一個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

10/13 01:07, , 1F
笨方法,把 showDialog() 再多包一層
10/13 01:07, 1F

10/13 21:00, , 2F
謝謝,這樣的確是可以用了,不過我發現問題似乎在
10/13 21:00, 2F

10/13 21:00, , 3F
Thread上
10/13 21:00, 3F
文章代碼(AID): #173WVP7w (C_Sharp)