Cześć, mam pewien dylemat i chciałem się upewnić, czy dobrze myślę. Załóżmy, że mam metodę w klasie:
function TMyClass.Sum(a, b: integer): integer;
begin
cs.Enter;
result:=a+b;
cs.Leave;
end;
cs to oczywiście TCriticalSection.
Mam też utworzony jeden obiekt tej klasy. Jest on używany w kilku wątkach. I teraz pytanie, czy taki zapis klasy jak wyżej wystarczy, żeby uczynić ją thread safe, czy powinienem raczej stosować sekcje na obiekt, tzn:
cs.Enter;
a:=ObjOfMyClass.Sum(1, 2);
cs.Leave;
ansistring
ach (albounicodestring
ach w nowszych wersjach), który jest przekazywany do funkcji jako wskaźnik, nie jest kopiowany cały napis.