Und ich glaube du programmierst Müll

Allein durch die Verwendung einer Critical Section ändert sich nämlich absolut nichts am Programmablauf, ausser dass verhindert wird dass mehrere Threads gleichzeitig auf ein Objekt oder was immer zugreifen, was sie keinesfalls dürfen.
Wenn aber dann wie du sagst zu wenig Datensätze übertragen werden muss der Fehler ganz wo anders liegen.