przekazanie zmiennej do wątku

0

Jak odpalić wątek z jakąś zmienną podaną przy tworzeniu nowego wątku?

np. wątek liczy mi liczbę x do potęgi 11 :)

i teraz chce odpalić ten wątek i przekazać mu zmienną x.

0

A nie da się tak :

TTest = class(TThread) 
    protected 
        procedure Execute; override; 
    end; 

Potem :

procedure Licz(liczba, potega : integer);
begin
    //bla bla bla
end;

Wątek ma wyglądać tak :

procedure TTest.Execute; 
var 
  I : Integer; 
begin 
    FreeOnTerminate := True;
    Synchronize(Licz(x, 11));
end; 
0

No wlaśnie nie bardzo :)
Bo wartość x w wątku jest stała, a ja chce raz wywołać wątek, z wartością x=2 a za chwilę drugi z x=10

0

To nie możesz dać zmiennej np. w sekcji private klasy wątku? A potem:

wątek.create;
wątek.zmienna:=wartość;
wątek.start;

(pseudokod, jakby ktoś się czepiał)

0

Zrób konstruktor parametryczny i przekazuj paramter przy tworzeniu wątku.

Polecam: %Delphi%\Demos\Threads
Zobacz jak tam jest tablica przekazywana.

0

Ok, już wsio wiem. Jakoś nie wpadłem na to aby przejrzeć demka, a że zobaczyłem komentarz w artykule o wątkach o tym, że można przekazywać zmienne, to chciałem się dowiedzieć, jak to zrobić.

Dzięki za pomoc.

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