![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по дополнительным потокам!!! [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?