Ich benutze dafür CriticalSections. Wobei ich gelesen habe, dass es bei Lesezugriffen eigentlich keine Speicherverletzungen gibt.
Sobald irgendwer die Variable beschreibt (z.B. der Hauptthread), während irgendein anderer Thread lesend auf die Variable zugreift, kann es krachen.
In einem solchen Fall gibt es keine direkte Zugriffsverletzung ("Speicherverletzungen" ist nicht das richtige Wort). Der gelesene Wert ist aber ungültig.
Ist das z.B. eine Variable die einen bestimmten Speicherbereich adressiert (z.B. ein Objekt), kann als Folge irgendwo eine Zugriffsverletzung auftreten.
Zumindest ist der weitere Programmverlauf dann nicht mehr vorhersehbar.