Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.30;
Скачать: CL | DM;

Вниз

Thread?   Найти похожие ветки 

 
Юрий Ж. ©   (2003-12-27 23:07) [0]

Как прервать выполнение Thread а потом снова начаь выполнение с другими параметрами. Пример я смотрел.
Объясняю:
 после вызова thread.Terminate уже нельзя ничего с ней сделать, как этого избежать.
Я понимаю, что данный вопрос скорее в WinAPI, посто прогу пишу на KOL...
Заранее благодарен!


 
miek ©   (2003-12-28 00:22) [1]

Остановить поток, изменить его состояние (переменные, объект и проч), затем запустить снова. А уж он сам должен видеть, что его перезапустили.


 
Юрий Ж. ©   (2003-12-28 11:15) [2]

А можно немного поподробнее и с примерчиком :)


 
miek ©   (2003-12-28 13:20) [3]

Mythread.Suspend;
MyThread.var1:= flag_perezapusk;
MyThread.Resume;


 
Gandalf ©   (2003-12-28 13:22) [4]

Вот псевдо код, думаю идея ясна.

while not Terminated do
begin
 DoSMTH(Start);
 Suspend;
end;

....
Start:=123;
Resume;
....


 
panov ©   (2003-12-29 21:47) [5]

В процедуре потока должен быть опрос некоей переменной(естественно с написанием потокобезопасного кода)

Примерная процедура такая:

MyVar := 1;
CreateThread(nil,0,MyThread,0,HandleThread);
...
SuspendThread(HandleThread);
MyVar := 0;
...
ResumeThread(HandleThread);

procedure MyThread();stdcall;
var
begin
 <Begin Loop>

   case MyVar of
     0:...
     1:...
   else ...
   end;
 <End Loop>
end;



Страницы: 1 вся ветка

Текущий архив: 2004.05.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.025 c
14-1083909758
stone
2004-05-07 10:02
2004.05.30
Без прав теперь не покататься. Даже на мопеде


14-1084009285
Alex-21
2004-05-08 13:41
2004.05.30
Архангельский А.Я. Программирование в Delphi 5


3-1084274477
bushmen
2004-05-11 15:21
2004.05.30
Знающим MySQL


1-1084800303
Developerr
2004-05-17 17:25
2004.05.30
ShowModal и Show


3-1083530028
Kirill
2004-05-03 00:33
2004.05.30
Открываются только 30 записей