[問題] 有關多執行緒

看板C_Sharp (C#)作者時間13年前 (2012/04/23 15:05), 編輯推噓0(008)
留言8則, 3人參與, 最新討論串1/1
小弟目前有一個專案,是一次開四個執行緒分別去做事 在流程中會分別去更新,同一個dataGridView自己所屬那行的訊息(也就是一共四行) 問題來了,執行一段時間後,介面會當掉 也就是介面會停止不動,但去工作管理員看,發現程式還是繼續在執行 實際上也有去改DB跟做事(都正確無誤),只是介面會呆在那裏不動(沒有更新訊息)。 因為程式碼有點繁雜,小弟也不知道該貼那段出來 想請知道的大大給個方向,讓小弟研究下! 以上感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.11.164

04/23 15:21, , 1F
不知道能不能加個application.doevent()?
04/23 15:21, 1F

04/23 16:11, , 2F
UI也算一個thread,所以你不能跨thread更新UI~
04/23 16:11, 2F

04/23 16:12, , 3F
你可以考慮 Dispatcher.BeginInvoke 或 BackGroundwo
04/23 16:12, 3F

04/23 16:13, , 4F
backgroundworker來更新你的UI
04/23 16:13, 4F
感謝以上二位大大回答 目前是以this.Invoke來更新dataGridView訊息. ※ 編輯: ONLYSMART 來自: 114.32.11.164 (04/23 16:29)

04/23 17:15, , 5F
更新太快, 間隔太短了? 思考一下是不是有必要這樣做...
04/23 17:15, 5F
感謝y大 確實是更新的很快,間隔時間較短,所以這個錯誤是dataGridView來不及反應造成的嗎? ※ 編輯: ONLYSMART 來自: 114.32.11.164 (04/23 17:27)

04/23 17:42, , 6F
就像你所說的, 但這也不能算是錯誤啦XD
04/23 17:42, 6F

04/23 17:42, , 7F
我會建議你另開一個thread去做定期更新各資訊的動作
04/23 17:42, 7F

04/23 17:43, , 8F
更新的間隔就要看你自已測試了!
04/23 17:43, 8F
文章代碼(AID): #1FbFzNxZ (C_Sharp)
文章代碼(AID): #1FbFzNxZ (C_Sharp)