Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2007, 12:57   #1
Трик
 
Регистрация: 24.10.2007
Сообщений: 3
По умолчанию Как отследить завершение выполнения потока TThread?

Поток TThread записывает данные в файл, в конце выполнения Execute, вызваю проверку присутвия этого файла функцией fileexists(), но эта функция файла не видит...
Видимо нужно дожидаться закрытия потока и только потом проверять файл.
Вопрос как определить что поток закончил выполнение?
Трик вне форума Ответить с цитированием
Старый 24.10.2007, 14:02   #2
Maslan
Форумчанин
 
Регистрация: 15.10.2007
Сообщений: 147
По умолчанию

Проверь какой файл использует доп.тред, а какой - основной тред.
Если всё ок (просто когда ты что-то пишешь в файл, то файл сначала создаётся и становится "видимым" ддя fileexist, а уж потом пишется), то попробуй в основном модуле создать переменную булевскую типа ThreadTerminated=false и из потока её устанавливать. Тогда проверяя её значение можешь следить за потоком.

Вариант 2: Если есть алгоритмическая возможность - переместить работу с файлом в тред. (как минимум Form1.Button1Click(self))

Вариант 3: WaitForSingleObject(hThread,dwMilli seconds);
Maslan вне форума Ответить с цитированием
Старый 24.10.2007, 14:50   #3
Трик
 
Регистрация: 24.10.2007
Сообщений: 3
По умолчанию

Спасибо за варианты решений, попробую - тогда сообщу подробнее как лучше сделать!!!
Трик вне форума Ответить с цитированием
Старый 24.10.2007, 14:55   #4
Maslan
Форумчанин
 
Регистрация: 15.10.2007
Сообщений: 147
По умолчанию

Удачи. Рекомендую вариант 3 - он "стандартный" + имеет встроенную проверку\задержку (чтобы не ждать вечность, ато мало ли что)
Maslan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод Synchronize класса TThread EdNovice Общие вопросы Delphi 10 01.08.2009 14:47
Как отследить нажатие кнопки Обновить из PHP? Timpi PHP 4 11.07.2008 09:16
Как отследить отпускание клавиши? Zefick Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 27.05.2008 19:14
использование TThread amandra Общие вопросы Delphi 6 03.05.2008 03:13
Stack owerflow - глюки с TThread IOrist Общие вопросы Delphi 4 11.11.2007 09:13