Показать сообщение отдельно

  #2  
Старый 09.04.2010, 18:14
JnK
Участник форума
Регистрация: 30.03.2007
Сообщений: 121
Провел на форуме:
188563

Репутация: 52
По умолчанию

Цитата:
Сообщение от trigada  
Такой вопросик:
Имеется Button1, при ее нажатии создаем и запускаем потоки, также имеется переменная count_threads_on (кол-во работающих потоков), соответсвенно при запуске потока увеличиваем count_threads_on, при завершении уменьшаем count_threads_on, потом Button1.Enabled:=False;
В Button1, поставил такой код (ждем пока не завершатся все потоки, возобновляем Button1)
Код:
 while count_threads_on<>0 do Application.ProcessMessages;
if count_threads_on=0 then
Button1.Enabled:=True;
Так вот этот цикл конкретно выгружает процессор while count_threads_on<>0 do Application.ProcessMessages;
Может есть какой то выход? Или я что то не так сделал?
Еще у меня есть таймер, он обновляется каждую секунду, выполняет кое-что, может сделать проверку там (if count_threads_on=0 then Button1.Enabled:=True; ) ?
Почитай про Synchronize и OnTerminate, может это поможет.
вот тут статья довольно хорошая hxxp://forum.vingrad.ru/forum/s/dd3d4c1f673a46bd3a6a2d2fb6ee5ed9/topic-60076/view-all.html
 
Ответить с цитированием