台灣最大程式設計社群網站
線上人數
1688
 
會員總數:245799
討論主題:189428
歡迎您免費加入會員
討論區列表 >> C# >> Update datagridview from background thread
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
Update datagridview from background thread
價值 : 100 QP  點閱數:177 回應數:5
樓主

leon
初學者
25 32
656 60
發送站內信

請問大大
小弟目前遇到一個問題不知該如何解決與方向
小弟的目的是
從使用者 UI 上點擊 A 按鈕後,會到資料庫找 LIKE %WK% 的資料,再把結果顯示在 UI 的 DataGridViewRow

因量很多,在搜尋的期間
UI 就會無回應,直到資料找齊並顯示在DataGridViewRow 後才能正常

小弟透過 background thread
把 到資料庫找 LIKE %WK% 的資料

目前卡在 要如和把 background thread 獲得的大筆資料交給 UI 端的DataGridViewRow顯示

請大大指點迷經


搜尋相關Tags的文章: [ DataGridViewRow ] ,
本篇文章發表於2020-03-11 14:46
1樓
不錯的參考

P陳
檢舉此回應
會慢有二個地方,不知您是有多少筆資料?太多筆對用使用者來說是負擔(請善用條件來過濾)

再來請確認二件事
1.讀到資料要多久

2.顯示到DGV用多久的時間<---- 這個也佔很大一部份 哦

3.您目前的想法用 背景執行的話也許會更久
本篇文章回覆於2020-03-11 20:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

誰是誰
檢舉此回應
不就 Control.Invoke (把 資料設定給 DataGirdView 的 DataSource 屬性)
本篇文章回覆於2020-03-11 21:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

leon
檢舉此回應
to P陳
資料大約5萬筆,我是希望可以達到背景再跑的同時就塞資料給DataGridViewRow,如此一來 UI 的 進度表應該可以動,因為不是跑背景所以進度條都不會動


to 誰是誰
我再找找 Invoke 相關資料,這個我還不董怎麼用 @@
本篇文章回覆於2020-03-13 14:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

P陳
檢舉此回應
請將二個項目分開
1.讀
2.顯示
請分開告知二個的執行時間 才能針對問題來處理
本篇文章回覆於2020-03-13 21:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

leon
檢舉此回應
謝謝大大門的幫忙
透過 Invoke 可以完成我希望的結果
本篇文章回覆於2020-03-14 23:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.