![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Susel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 27.3.2004 Репутация: нет Всего: нет |
Есть: - класс TMyThread=class TThread, CreateSuspended=true, в методе Execute - цикл while not Terminated;
- главная форма, при создании которой создается n потоков Проблема в следующем, что при закрытии главной формы вываливается Access violation...... Пробовал в конструкторе потока FreeOnTerminate:=False и в деструкторе формы вызывать Terminate и Free для каждого из потоков - та же ошибка, но если деструктор выполнять пошагово в режиме трассировки - всё ок, ошибка не происходит. Может подскажет кто, в чём проблема!? Да, ещё.....управление выполнением потока осуществляется естествено при помощи Resume/Suspend........ Это сообщение отредактировал(а) Susel - 20.5.2006, 14:19 |
|||
|
||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Ты бы воспроизвел ошибку на тестовом примере - тогда можно было бы говорить о чем-то.
А так простой ответ - ошибка в программе. Добавлено @ 14:49 А пока небольшой совет. Для каждого работающего потока в Form.OnDestroy выполни Terminate. -------------------- |
|||
|
||||
Susel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 27.3.2004 Репутация: нет Всего: нет |
Хм.... при попытке создать тестовый пример - ошибка не выскакивает......:-)
Добавлено @ 15:07 Делал Terminate в Form.OnDestroy - не помогает..... |
|||
|
||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Знчит без кода ничего не сказать конкретного. -------------------- |
|||
|
||||
Susel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 27.3.2004 Репутация: нет Всего: нет |
Нашёл в чём баг.... После цикла while not Terminated в Execute стоял вызов Synhronize.... В функции синхронизации - обращение к объекту - члену TMyThread.... Страно, что объекты потока очитились до окончания выполнения процедуры Execute....
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |