Текущий архив: 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.45 MB
Время: 0.05 c