PDA

Просмотр полной версии : Выполнение функций, после завершения потоков [delphi]


OPF_Nik
03.02.2010, 22:40
//scan - поток
..............
if th >= k then
th:= k;
for q:= 1 to th do
Scan.Create(false);
sleep(200);
end;
end.

вместо "........" реализовать проверку:
"После того как все потоки выполнены"....
Что бы, если проверенны не все порты, опять запустить цикл создания потоков
Подскажите как реализовать?

ZdezBilYa
03.02.2010, 23:01
Такой вариант: выполнять эту проверку после завершения последнего потока.
Т.е.

T:=0;
/---------------/
поток что-то делает
всё сделал - увеличиваем переменную T
если T равно количеству потоков (т.е. это последний поток завершается), то делаем проверку и при необходимости снова запускаем потоки
/---------------/

OPF_Nik
03.02.2010, 23:04
ZdezBilYa думал об этом, только как эту проверку реализовать?

Chrome~
03.02.2010, 23:06
Да, можно делать все так, как говорит ZdezBilYa. Или же можно еще переменной T в самом начали присвоить значение количества потоков, а потом в конце основной функции потока пишешь dec(T). Если T равняется 0, значит все потоки выполнены.

OPF_Nik
03.02.2010, 23:09
спс, попробую

Ra$cal
03.02.2010, 23:41
http://msdn.microsoft.com/en-us/library/ms686946%28VS.85%29.aspx