Müsste genauso gehen, wenn du deine 2. Variante benutzt

Der Semaphore ist hier übrigens im "beginwrite" (murmel herausnehmen) und "endwrite" (murmel zurücklegen) versteckt

Würdest du keine
DLL verwenden, ginge es ganz einfach mit Synchronize (funktioniert auch wie ein Semaphor).