Итак, я разрабатываю новый программный интерфейс для устройства USB HID, и у меня есть вопрос о защите от параллелизма. Я предполагаю, что мне придется добавить защиту от параллелизма вокруг моих вызовов ReadFile и WriteFile (пожалуйста, поправьте меня, если я ошибаюсь), поскольку они могут вызываться из разных потоков в моем дизайне.
В прошлом я иногда использовал статические логические значения для обеспечения безопасности потоков, добавляя цикл с ожиданием в 1 мс, пока логическое значение не укажет, что код можно безопасно вводить. Я также использовал CriticalSections. Может ли кто-нибудь сказать мне, что CriticalSections принципиально лучше, чем использование static bool. Я знаю, что мне не придется кодировать цикл ожидания, но какую частоту опроса они используют в VC++ для проверки состояния блокировки? Подключены ли они к ОС каким-то образом, что делает их лучше? Является ли использование bool для проверки параллелизма не всегда безопасным? и Т. Д.