Müsste man in dem Fall nicht verhindern, dass der Thread, der die Funktion aufruft, unterbrochen wird?
Das ginge doch dann, indem man die CS innerhalb des entsprechenden Threads betritt:
Delphi-Quellcode:
...
FCriticalSection.Enter();
try
...
methode();
...
finally
FCriticalSection.Leave();
end;
...