伊莉討論區

標題: Queue使用技巧請教 [打印本頁]

作者: superwaterdog    時間: 2016-8-11 09:47 PM     標題: Queue使用技巧請教

各位好

Queue使用想必是為做非同步資料處理

但在Dequeue不外乎要有另一個執行序一直處理他

但當沒有資料要處理 直行序還卡在那

有無比較好的方式來進行Enqueue / Dequeue 的效果



作者: rr09192084    時間: 2016-8-12 11:48 AM

沒有資料時Queue.Count不就等於0了嗎?這應該是基本檢查是否還有資料的方式吧!
作者: sheauren    時間: 2016-8-12 09:47 PM

這部分要看你Queue處理的觸發條件來決定運作方式,
如果是固定時間處理的話,那應該會有一個Timer來觸發Dequeue進行處理。
如果是避免同時間太多筆資料,那觸發該筆處理後只要Dequeue看是否還要繼續處理,就能將整個Queue處理完畢。
作者: asdffdsa01    時間: 2016-8-14 11:26 PM

你可以在開一個Thread專門處理Dequeue的內容,當Queue.Count等於0時搭配ManualResetEvent這個技術去做停頓,每當Enqueue時就去觸發ManualResetEvent,處理Dequeue的Thread就又開始跑起來,我是這樣寫的!
作者: min721107    時間: 2020-4-15 12:12 PM

可以使用Queue.Count來判斷是否有資料,在Multi Thread的使用下,Enqueue或Dequeue時最好使用lock會比較保險一點




歡迎光臨 伊莉討論區 (http://a17.eyny.com/) Powered by Discuz!