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.
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.
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;
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
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ł)
Zrób konstruktor parametryczny i przekazuj paramter przy tworzeniu wątku.
Polecam: %Delphi%\Demos\Threads
Zobacz jak tam jest tablica przekazywana.
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.