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

2011-09-25 18:29
MaciejL
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

Pozostało 580 znaków

2011-09-25 18:37
0

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


Pozostało 580 znaków

2011-09-25 19:57
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;

- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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