Du musst die CriticalSection nur einmal erstellen, und zwar im Constructor deiner Klasse. In den Methoden dann wie du es scheinbar schon machst .Enter und .Leave verwenden. Mehr Arbeit solltest du damit nicht haben.
die CriticalSection sperrt dann einfach für jeden anderen Thread den Zugriff auf die Section, solange bis sie mit .Leave sozusagen wieder für den gebrauch freigegeben wird. Der nächste Thread ruft dann die MEthode auf, in der eben wieder ein .Enter implementiert ist und somit wird die Section wieder geschlossen, das ist alles
Nicht vergessen, die CriticalSection im Destructor der Klasse wieder freigeben