Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по дополнительным потокам!!! [D7, WinXP]


Андрей Пл ©   (2008-03-19 11:37:00) 

У меня такая ситуация в программе есть дополнительный поток который постоянно с периодичностью что то пишет в файл.
Так вот когда я завершаю программу (так же при этом вызываю метод Terminate доп.потока) то дополнительный поток иногда не успевает завершить последнюю итерацию цикла и также соответственно  операцию записи в файл и получается что в файле оказывается только часть данных.
Вопрос как мне завершить работу основной программы что бы при этом гарантировано завершил свою работу доп.поток???

Код доп.потока:

 while not Terminated do
 begin
   sleep(varSleep);

   U:= pSmInt^;
   .  .  .  .  .  .  .
   Regim:= pByte^;

   Writeln(F,DateToStr(Date):10, TimeToStr(Time):15, Uakb:10, I:10, T:10, Uin:10, U:10, Regim:10);
   beep;
 end;


Андрей Пл   (2008-03-19 13:43:00) [1]

Всем спасибо

thread.WaitFor-
помогло отцу русское демократии :)


clickmaker   (2008-03-19 12:32:00) [2]


> метод Terminate доп.потока

он всего лишь взводит переменую Terminated.
Вот если TerminateThread, то - другое дело


ЦУП   (2008-03-19 11:59:00) [3]


> Андрей Пл   (19.03.08 11:37) 


thread.WaitFor


grisme   (2008-03-19 11:43:00) [4]

WaitForSingleObject?


Наверх

Титульная страница Поиск, карта сайта Написать письмо