Re: [問題] Winform與Thread 相關問題請教..

看板C_Sharp (C#)作者 (wooly)時間9年前 (2016/03/24 03:37), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
q1: 沒看到你的前後程式碼,所以目前看起來第一種是同一個 thread q2: 從你的問題描述來看,似乎 MainForm 還會有其他的工作要做,所以你要處理的方 式應該是任何 MainForm 所接收到的任務都應該要建立新的 thread 來完成任務, MainForm 的 thread 應該只專心處理 MainForm UI 上的工作就好,如果其他 thread 完成工作需要回傳訊息給 MainForm 時,一定呼叫 MainForm UI thread 來更新畫面, 在網路上你可以找到很多這種 sample code q3: 按鈕事件是 LoginForm 上啟動的,若你沒有建立新的 thread,則就會用 LoginForm thread 來執行按鈕事件裡的工作. ※ 引述《don750421 (1+1≠2)》之銘言: : 目前有個需求,Mainform會有資料再跑..,但是,MainForm又會有其他按鍵事件。 : 例如:要開啟一個Form做登入的視窗.. : 在不影響主Worm的情況下,選擇以下兩種方式.. : 第一種方式: : LoginForm TempLogin = new LoginForm(); : TempLogin.TopMost = true; : TempLogin.Show(); : 第二種方式: : MainForm.Invoke(new MethodInvoker(delegate() : { : LoginForm TempLogin = new LoginForm(); : TempLogin.TopMost = true; : TempLogin.Show(); : })); : 問題一: : 請問一下,以上兩種方式所開啟的Form都是跑另一個Thread嗎? 那差異為何? : 問題二: : 假設我在LoginForm登入後,要把登入的人名帶回MainForm顯示... : 所以,我在LoginForm 做一個 delegate,並在MainForm實作deleate。 : 把登入人員名稱顯示在ui上。 : 那麼我在MainForm顯示人員資訊在UI上,也是跑原本MainForm的Thread嗎? : 還是跑我原本LoginForm的那個Thread? (會影響到MainForm執行嗎?) : 問題三: : 假設,我在LoginForm 上的某個按鈕事件 "動態產生Form(使用Form.Show())", : 作為顯示人員的Detail資料,那麼,這個Form又會是跑哪個Thread呢? : 最近剛在研究Thread和Form的關係,所以問題比較多@@ : 先謝謝各位前輩~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 131.107.159.253 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1458761866.A.B6A.html
文章代碼(AID): #1Myl2Ajg (C_Sharp)
文章代碼(AID): #1Myl2Ajg (C_Sharp)