Ĺadny brzuch
w programi robie nowy watek , po kliknieciu w buutton - po kliknieciu w inny button watek jest zatrzymywany i kasowany (na 100% juz go nie ma). A ja natomais chcialbym zeby watek wykonal sie (skonczyl to co ma zrobic ) i gdy sie zakonczy uruchomil sie inny - ale nie wiem jak sprawdzic czy pierwszy watek sie juz zakonczyl sie i zostal zabity . Jak sprawdzic czy dany wątek zostak zabity i w tym momencie odpalic inny lub nawet ten sam ??
procedure procka; var k:integer; begin k:=gettickcount; repeat until gettickcount-k=3000; end; procedure TForm1.Button1Click(Sender: TObject); var t, h:cardinal; begin h:=CreateThread(nil,0,@procka,nil,0,t); WaitForSingleObject(h,INFINITE); end;W tym przykładzie funkcja WaitForSingleObject przepuści program dalej, gdy wątek zakończy działanie, to również można napisać na innym wątku :)
Jeśli używasz klasy TThread masz do dyspozycji mętodę Terminated:boolean wątku :)
chym a moze cos innego - ten typ rozwiazania troszeczke mi nie pasuje .Albo innaczej sprobuj zatrzymac watek przed jego koncem - zaczekaj na jego zakonczenie - zabij go definitywnie i zrob h:=createThread.... jeszcze raz . mnie sie to nie udaje. Gdy probuje ponownie uruchomic watek (ktory w zamysle juz nie powinnien istniec ) to mi sie prog wywala
Użytkownik helios128 edytował ten post 17 marzec 2006, 16:10
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
procedure procka; var k:integer; begin k:=gettickcount; repeat until gettickcount-k=3000; end; procedure TForm1.Button1Click(Sender: TObject); var t, h:cardinal; begin h:=CreateThread(nil,0,@procka,nil,0,t); WaitForSingleObject(h,INFINITE); end;W tym przykładzie funkcja WaitForSingleObject przepuści program dalej, gdy wątek zakończy działanie, to również można napisać na innym wątku :)
Jeśli używasz klasy TThread masz do dyspozycji mętodę Terminated:boolean wątku :)
chym a moze cos innego - ten typ rozwiazania troszeczke mi nie pasuje .Albo innaczej sprobuj zatrzymac watek przed jego koncem - zaczekaj na jego zakonczenie - zabij go definitywnie i zrob h:=createThread.... jeszcze raz . mnie sie to nie udaje. Gdy probuje ponownie uruchomic watek (ktory w zamysle juz nie powinnien istniec ) to mi sie prog wywala
Użytkownik helios128 edytował ten post 17 marzec 2006, 16:10