假設我的線程函數中有一個switch語句,用於評估觸發事件。每種情況都是不同的事件。在案件結束時或在開始時撥打電話ResetEvent
是否更好?在我看來,它應該結束,以便事件不能再次觸發,直到線程完成前一個事件的處理。如果它被放置在開始處,則該事件可以在被處理時被再次觸發。重置線程事件 - C++
0
A
回答
1
是的。認爲這是要走的路。創建一個手動重置事件(API的第二個參數CreateEvent
),以便事件在設置後不會自動重置。
1
如果您使用單個事件對象處理傳入流量(意味着您沒有入站隊列),您將錯過事件。這真的是你想要的嗎?
如果你想捕捉所有事件,一個成熟的生產者 - 消費者隊列將是更好的選擇。 Boost.Thread的參考實現here。與多線程代碼再度出現的時間和
的一個問題是如何 將數據從一個線程轉移到另一個 。例如,並行串行算法一個常見方式 是 將其分割成獨立塊 ,使管道 - 在 每個階段流水線可在單獨 線程上運行,並且每個階段增加了數據 到輸入隊列在下一個階段 完成。爲了正確工作 ,輸入隊列需要寫入 ,以便數據可以安全地由一個線程添加 ,並通過另一個線程刪除 而不會破壞 數據結構。
相關問題
- 1. c#線程與手動重置事件
- 2. C#事件和線程
- 3. C#事件:哪個線程
- 4. 線程事件處理(C#)
- 5. C#:線程安全事件
- 6. C#線程處理事件
- 7. 線程退出事件 - C++
- 8. C#,事件處理程序和線程
- 9. erlang事件vs線程有多重?
- 10. C#線程方法重置問題
- 11. C#多線程代理和事件
- 12. C#事件沒有引發和線程
- 13. C++中的多線程事件處理
- 14. 跨線程使用事件句柄 - C++
- 15. 線程數之間的事件C++
- 16. 線程創建事件設置CurrentCulture
- 17. C多線程死鎖的線程事件
- 18. 事件和線程
- 19. 線程和事件
- 20. 線程和事件
- 21. C++提升線程重用線程
- 22. 線程池線程和偵聽事件
- 23. 重置觸摸事件的事件處理程序
- 24. 多線程事件調度
- 25. 多線程委託/事件
- 26. 多線程和事件
- 27. Parallel.For/Foreach線程重用C#
- 28. C#telnet應用程序的單線程事件處理程序
- 29. C#.NET webbrowser控件在主線程中的單獨線程提升事件
- 30. 重新設置新線程