Добрый день уважаемые форумчане. Возник вопрос.
Имеется глобальная переменная
Так же имеется процедура где эта переменная проверяется;
Эту процедуру я вызываю через потоки TTask
Вопрос если я использую критическую секцию таким образом:
Это правильная реализация ? Можете кто то пояснить ?
Имеется глобальная переменная
Код:
var
global_var: String;
Код:
procedure test;
var
i:Integer
begin
i:=Random(100);
if global_var < i then global_var:=i;
end;
Код:
SetLength(tasks, 5);
for i := 0 to 4 do
begin
tasks[i]:=TTask.Run(
procedure
begin
Test;
end);
end;
TTask.WaitForAll(tasks);
Код:
var
i:Integer
CS: TCriticalSection;
begin
CS:=TCriticalSection.Create;
i:=Random(100);
CS.Enter;
if global_var < i then global_var:=i;
CS.Leave;
end;