Предположим, что у меня есть оператор switch в моей функции потока, которая оценивает инициируемые события. Каждый случай - это другое событие. Лучше ли поместить вызов в ResetEvent
в конце или в начале? Мне кажется, что он должен идти в конце, так что событие не может быть запущено снова, пока поток не завершит обработку предыдущего события. Если он помещен в начале, событие может быть запущено снова, при обработке.Сброс Threaded Events - C++
ответ
Да. подумайте, что это путь. Создайте событие ручного сброса (второй параметр CreateEvent
API), чтобы событие не было автоматически сброшено после его установки.
Если вы обрабатываете входящий трафик с помощью одного объекта Event (подразумевая, что у вас нет входящей очереди), вы будете пропускать события. Это действительно то, что вы хотите?
Если вы хотите поймать все события, то в полной мере будет поставлена очередь на очереди производителей-потребителей. Эталонная реализация для Boost.Thread here.
Одна проблема, которая приходит время и снова многопоточного кода как для передачи данных из одного потока в другой . Например, один распространенный способ распараллеливания последовательного алгоритма является разделить ее на независимые куски и сделать конвейер - каждый этап в трубопровод может быть запущен на отдельный поток, и каждый этап добавляет данные к входная очередь для следующего этапа когда все будет сделано. Для правильной работы входная очередь должна быть записана так, чтобы данные могли быть безопасными , добавленные одной нитью и удаленные другой нитью без искажения структуры данных .
- 1. C# Multi threaded Server
- 2. C++ Threaded Stopwatch
- 3. Linux threaded C server
- 4. Un-Threaded быстрее, чем threaded
- 5. C# Multi-Threaded Console Animation
- 6. объектив-c touch-events
- 7. C# events fight
- 8. Multi-threaded webserver vs single threaded
- 9. Threaded quicksort
- 10. Threaded DownloadFileAsync
- 11. C# Catch Events from Tasks
- 12. C# ASP.NET HttpModules: HttpApplication Events
- 13. C# State pattern and events
- 14. Последовательность быстрее, чем Multi threaded - OpenMp - C++
- 15. VB.Net (или C#) 2008 Multi Threaded Import
- 16. Threaded Erlang C-Node (cnode) Взаимодействие howto?
- 17. C++ threaded db class memory mixup
- 18. C# .NET: «Multi Threaded Apartment» и «Multithreading»
- 19. Создание (threaded) игрового сервера в C++/WinSock
- 20. Async threaded tcp server
- 21. TCP threaded python
- 22. Сброс настроек пользователя C#
- 23. C# Сброс маркера отмены
- 24. Сброс ostream, C++
- 25. Сброс адреса C
- 26. Сброс PIC18 от C
- 27. Сброс функции шаблона - C++
- 28. Переменный сброс в C#
- 29. Сброс списков в C#
- 30. Почему Non-Threaded работает быстрее, чем Multi-Threaded?