[問題] timer的問題

看板C_Sharp作者 (學長姊好阿)時間13年前 (2010/10/20 23:37), 編輯推噓0(0016)
留言16則, 3人參與, 最新討論串1/1
大家好 現在寫了一個程式 其中主視窗產生五個子視窗 然後每個子視窗有個timer負責監控文字檔 當文字檔發生預期中的訊號的時候做出動作 最後再把參數丟回給主視窗 由主視窗將動作寫回資料庫 並在datagridview上顯示 因為子視窗的timer interval 大概是設500ms~1000ms 現在發生的情形是我有個時間點很多子視窗會同時動作 觸發方式是當datetime.hour,minute,second都與我設定的一樣 但好像會因為其中一個子視窗先寫入後(可能是寫入資料庫時間過長), 其他子視窗沒辦法做 等到他們可以做的時候時間比對又過了 所以會漏掉沒執行動作 想問大家 一般遇到這情形要怎麼做 是要建立thread來更新資料庫嗎? 謝謝大家耐心看完^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.33.225.222

10/20 23:40, , 1F
把主視窗的接受參數與寫入資料庫交由不同的Thread負責?
10/20 23:40, 1F

10/20 23:40, , 2F
好 我試試看
10/20 23:40, 2F

10/21 19:24, , 3F
先把資料存在主視窗,再讓主視窗慢慢一個個處理
10/21 19:24, 3F

10/22 11:28, , 4F
不過這樣事件是由子視窗觸發 那是要存完參數
10/22 11:28, 4F

10/22 11:29, , 5F
然後主視窗隔一段時間就來收集嗎?
10/22 11:29, 5F

10/22 11:33, , 6F
剛剛試著在子視窗的timer事件觸發就建立thread,
10/22 11:33, 6F

10/22 11:33, , 7F
好像等很久都沒更新資料庫
10/22 11:33, 7F

10/22 14:02, , 8F
解決了 最後是用子視窗建立thread去呼叫主視窗的方法來
10/22 14:02, 8F

10/22 14:02, , 9F
更新資料庫^^
10/22 14:02, 9F

10/22 19:55, , 10F
像你問的這種東西運用範圍還蠻廣的,我是建議你可以用駐列處理
10/22 19:55, 10F

10/22 19:55, , 11F
只要有訊息,就先在主視窗排隊,順便叫一下主視窗處理,如果主視
10/22 19:55, 11F

10/22 19:56, , 12F
窗本來就在處理,在處理完當前的會再掃一次是否還有要處理的
10/22 19:56, 12F

10/22 19:56, , 13F
如果主視窗在休息了,這時就會被你叫起來作事
10/22 19:56, 13F

10/22 19:57, , 14F
排隊的作法在金融業之類有事要叫中央主機處理時,都會用,免得
10/22 19:57, 14F

10/22 19:58, , 15F
中央主機連線塞暴
10/22 19:58, 15F

10/23 20:03, , 16F
喔喔 感謝e大的建議 用queue好像也不錯 也來試寫看看
10/23 20:03, 16F
文章代碼(AID): #1Clmp0lc (C_Sharp)