Jak skasowac watek i ustawic go zeby dziala l od nowa ?

0

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?

0

Thread.Terminate;
Thread.Free;
Thread:=Klasa.Create(False);

0

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ł

0

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

0

Chodzi ci o TThread.Suspend?

0

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.

0
Send := TSend.Create(True);
  Send.Resume;

może lepiej:

Send := TSend.Create(false);

</b>
0

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.

0

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ęć)

0

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

0

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 :-|

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