Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Выполнение функций, после завершения потоков [delphi] (https://forum.antichat.xyz/showthread.php?t=175994)

OPF_Nik 03.02.2010 22:40

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

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


Время: 14:32