Witam Czytalem art o watkach zrobilem tak jak bylo napisane: i teraz chcialem uzyc taki watek w swoim programie. przykladowo tak
JAK uruchamiam watek losuje sie liczba od 0 do 4
powiedzmy wylosowalao sie 3
po wylosowaniu liczby watek trwa 10 sekund ale aplikacja moge sterowac
Wiec od momentu wylosowania liczby wciskam guzik zatrzymujacy watek i potem chcialbym znowu go uruchomic ale zeby wylosowal nowa liczbe a watek nie losuje tylko dalej leci od spalzowania. Niewiecie jak powinienem zastosowac komende zeby przerwac watek i go ustawic zeby dzialal od nowa?
Thread.Terminate;
Thread.Free;
Thread:=Klasa.Create(False);
Chyba coś namieszałeś - nie za bardzo rozumie o co chodzi - przecież wątek ten możesz zamknąć po wylosowaniu (FreeOnTerminate := True), a później jeszcze raz uruchomić.. Mógłbyś bardziej wyjaśnić do chcesz osiagnąć ?
// Szymek mnie ubiegł
Musze zaraz sprawdzic to co pnapisaleiscie .
chodzi mi o taka kwestie:
Mam program do wysylania mesow i kiedy wcisne wyslij
to w tle program wysyla mi SMSA ale jak zatrzymam wysylanie to cche zeby program zakonczyl watek ii jak wcisne ponownie wyslij to zeby mi ponownie wyslal mesa.
A jak wysle mesa za pierwszym razem przy pomocy watkow to jak nie zamkne programu i nie uruchomie to nie chce mi drugi raz wyslac. Musze wpisac cos jak sie skonczy watek i wysloe mesta tylko niewiedzialem co sprobuje wpisac cos z termiante
Chodzi ci o TThread.Suspend?
TAK juz zrobilem Dziekuej wszytskim za pomoc:
Jak uruchamiamy watek psizemy:
Send := TSend.Create(True);
Send.Resume;
Jak wylaczmy watek i resetujemy piszemy:
Send.Suspend;
Send.free;
Dzieki za pomoc.
Send := TSend.Create(True);
Send.Resume;
może lepiej:
Send := TSend.Create(false);
</b>
NIe nie moze byc wlasnie tak:
Send := TSend.Create(false);
Dlatego ze jak uruchomie watek to program dziala w tle a jak wpiszesz zamiast:
Send.Suspend;
Send.free;
to
Send := TSend.Create(false);
to program sie zatnie na kilka sekund.
nie no, teraz to już mnie zdołowałeś...
może ty mylisz terminy?
z tego co wiem to ci sie program zatnie na pare sekund bo Send.Free; to powoduje (czyści pamięć)
walsnie po send.free sie nie zacina a po tamtym sie zacina. i jak to rozumiec?
Moze czysczenie pamieci jest szybdsze niz kasowanie obiektu czy nie wiem nie znam sie az tak
tez z tym miałem problem. Ja po prostu nie swalniam wątku w ten sposób: watek.Free; tylko Od razu watek.Create; i mi to hula z tym, że nie wiem czy pamięci się na to nie traci :-|