[問題] 更新GUI用event還是polling比較好?
我寫了一個呼叫某個dll的二次包裝class
然後裡面包了一個 BackgroundWorker 去 polling 別人的參數
然後記錄在這個二次包裝的class裡面
現在我想要把這些狀態顯示在gui上面
那現在方法有至少兩種
第一種是我在 form 上面再開一個 BackgroundWorker 去 polling 二次包裝的class
第二種是我在二次包裝的class上開放一個event hooker,然後在
DoWork 尾端 raise event
大家會建議用哪一種呢?
有明顯的差異性嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.235.221
※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1548319368.A.7BF.html
※ 編輯: s4300026 (114.137.72.20), 01/24/2019 18:18:07
推
01/25 08:23,
6年前
, 1F
01/25 08:23, 1F
→
01/25 08:23,
6年前
, 2F
01/25 08:23, 2F
→
01/25 08:23,
6年前
, 3F
01/25 08:23, 3F
是沒有那麼誇張,但是也不算非常少了,
兩張卡控制14個馬達,兩張DIO,兩個相機(20FPS * 5MB *2 )
如果要全部監控到GUI,就是14+2+2個thread在做狀態 polling
如果GUI不採用event,thread數量就 *2 (感覺我已經自問自答了?)
算一下好像還真的有破100MB ~.~"
但只是全部都是相機惹的禍...
目標就是不要掉FPS,然後GUI不要LAG
※ 編輯: s4300026 (60.250.235.221), 01/25/2019 09:32:39
推
01/26 10:46,
6年前
, 4F
01/26 10:46, 4F
→
01/26 10:46,
6年前
, 5F
01/26 10:46, 5F
→
01/26 10:46,
6年前
, 6F
01/26 10:46, 6F
→
01/26 10:46,
6年前
, 7F
01/26 10:46, 7F
→
01/26 10:46,
6年前
, 8F
01/26 10:46, 8F
→
01/26 10:46,
6年前
, 9F
01/26 10:46, 9F
→
01/26 10:46,
6年前
, 10F
01/26 10:46, 10F
推
01/26 10:53,
6年前
, 11F
01/26 10:53, 11F
→
01/26 10:53,
6年前
, 12F
01/26 10:53, 12F
你說的沒有錯,正常來說只要一個thread就夠了
說實話,GUI更新超級快,一點意義也沒有,人們也不在乎,也反應不過來
目前的問題在於 抓取 的行為要怎麼樣只寫一次就夠了?
我一個GUI,配一個馬達
thread 開一個,然後進行一對一更新
但如果我今天有 14 個馬達,就算我只更新當前顯示的 GUI
那我也要撰寫 event 或 polling 的方法
那我的 event 或 polling 方法要寫 14次嗎?
如果不想寫 14 次
那就包裝成class
那就會遇到 hook 14 次比較好,還是多產生 14 個 polling thread 比較好?
※ 編輯: s4300026 (60.250.235.221), 03/09/2019 17:07:24
推
03/10 23:05,
6年前
, 13F
03/10 23:05, 13F
→
03/10 23:05,
6年前
, 14F
03/10 23:05, 14F
→
03/10 23:05,
6年前
, 15F
03/10 23:05, 15F
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章