看板 C_Sharp 關於我們 聯絡資訊
請教各位前輩。 小弟使用c#的System.Windows.Forms.Timer, 在執行緒內呼叫timer,欲進行即刻的啟動時, 偶發會出現無法start的情形(機率極低)。 這個現象只有在一台中電腦會發生。 大多數的電腦上運行卻又從未出現過。 小弟的寫法如下,是否用法有誤? void Thread() { While(true) { ... //當達成某些事件時即刻啟動timer this.BeginInvoke(new EventHandler(delegate { this.recognitionTimer.Stop(); this.recognitionTimer.Interval = 1; recognitionTimer.Start(); })); } ... } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.117.80.102 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1540212164.A.FC1.html
jass970991: .net有三個timer 好像有一個是用法上要注意的 忘了哪 10/23 09:33
jass970991: 個 10/23 09:33
Litfal: 他這個應該是最不需要注意的 雖然不知道他為什麼要這樣寫 10/23 17:46
Litfal: 說明一下使用情境吧 你這樣如果沒有在Timer事件裡把Timer 10/23 17:48
Litfal: 關掉,Timer應該會幾乎把UI執行續卡死...但如果只跑一次 10/23 17:49
Litfal: 又不需要用Timer 10/23 17:49
jamyang: 可以檢查是否偶發沒有觸發這個事件 10/24 07:05
gundan: log寫多一點阿 … 查問題的時候就好用了 11/02 14:48