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