Wątki, odwoływanie się do zmiennych publicznych

0

Witam,
chciałbym zapytać o odwoływania się (odczyt, zmiana) do zmiennych publicznych w wątkach. To jest, czy w ogóle można to tak robić?

type
  Threadek = class(TThread)
  private
    
  protected
    procedure Execute; override;
  public
    Status: integer;
    constructor Create(s:String);
  end;

....

procedure Threadek.Execute;
var
  I:integer
begin
  repeat
    inc(i);
  until i=255;

  status:=1;

  repeat
    sleep(1000);
  until status=2; 

 // i jakieś inne działania
end;

A w unicie formatki

if Thr.Status=1 then Thr.Status:=2; // Thr to zmienna typu Threadek
0

Można, ale powinieneś użyć jakiejś formy synchronizacji.

0

synchronizacja nie jest konieczna o ile jesteś świadom faktu, że

Thr.Statos := 1;
if Thr.Status=1 then //<-tutaj wcale nie musi to być prawda
  Thr.Status:=2;

1 użytkowników online, w tym zalogowanych: 0, gości: 1