→ AizawaYuuiti: 好像找到一些關鍵字 04/17 18:04
→ AizawaYuuiti: 不用Send改用BeginSend,然後sendDone.WaitOne() 04/17 18:04
→ AizawaYuuiti: Timer的部分還在思考... 04/17 18:05
推 s89227: callback? 04/17 19:39
→ Litfal: 你把事情搞得好複雜,你到底想不想讓他們非同步(重疊)跑? 04/17 21:16
→ AizawaYuuiti: 現在想法也是有點混亂,有些要同步有些不同步的 04/17 22:40
→ AizawaYuuiti: 主要是主Thread想讓他保持100ms跑 04/17 22:41
→ AizawaYuuiti: 但如果裡面的子物件使用同步跑且順序等,數量一多就 04/17 22:41
→ AizawaYuuiti: 會超過100ms,而且越多越久。 04/17 22:42
→ AizawaYuuiti: 但使用非同步的時候,有些判斷式是需要偵測其他物件 04/17 22:42
→ AizawaYuuiti: 狀態的,然後就會發生兩邊同時修改同時判斷成功 04/17 22:42
→ AizawaYuuiti: 所以才會覺得非同步會造成一些問題。 04/17 22:43
→ Litfal: 聽你的說法感覺你不應該用timer 04/17 23:33
→ Litfal: 你看要不要再把問題描述的具體一點,主執行緒100ms是只負 04/17 23:37
→ Litfal: 責啟動或加入工作(Task)嗎? 04/17 23:37
→ Litfal: 目前看起來你的子工作各自有各自的timer在執行,不太能理 04/17 23:41
→ Litfal: 解你為何要這樣做 04/17 23:41
→ ssccg: 例如說把訊息queue在array,然後排程去從array取出來這點就 04/18 14:14
→ ssccg: 怪怪的,通常會直接放進一個BlockingQueue,然後一個thread 04/18 14:14
→ ssccg: 固定從這個queue前端取東西一直送就好,沒東西自然會停著等 04/18 14:15
→ ssccg: 要調頻率就動這thread沒有平行執行的問題 04/18 14:16
→ ssccg: 你還是把需求講清楚一點,看有沒有從根本架構修改的方法 04/18 14:17
推 jizang: Thread+同步, 或者單執行許+非同步 04/18 22:09
推 jinmin88: 回2..在timer要做事情之前用lock(obj){}包住 04/19 01:26
→ jinmin88: 他第二次跑的時候如果發現還在lock..就會skip過去 04/19 01:26
→ Litfal: 你什麼時候有Critical Section進不去就會被跳過的錯覺了 04/19 02:36
→ jinmin88: sorry想錯了,的確不會skip,剛查了可試Monitor.TryEnter 04/19 13:28
→ AWEN221: 感覺你無法確認OnTimer時上一次TIMER的工作是否做完... 04/24 11:14