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

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

Не получаеться остановить поток [D7, WinXP]


Фёдор Мегатронов ©   (2004-08-19 20:39:00) 

Вобщем в потоке у меня качаеться файл из инета.
И идёт проверка на terminated.

закачка идёт пока не кончился фаил или пока не terminated.

На главной форме есть кнопка "Остановить"

с кодом
ShowMessage('Процесс приостановлен');
DThread.Terminate;

Когда я нажимаю на эту кнопку во процессе закачки, то вижу

сначала надпись 'Процесс приостановлен' а за тем исключение: EAccessViolation по такому-то адресу.

В потоке после проверки на terminated у меня сделаны и InternetCloseHandle(hURL) и InternetCloseHandle(hSession);

Вот я не могу разобраться в чём проблема.

Может быть останавливать поток в котором открыта инет сессия нужно как-то по другому ? потому что в других прогах с потоками всё работает отлично.


KSergey   (2004-08-19 21:14:00) [1]

Ну тогда отладчиком полазить по ветке, где ловится флаг Terminate...


Фёдор Мегатронов   (2004-08-19 21:09:00) [2]

поток инициализирую так

DThread := ThreadClass.Create(true);
DThread.Priority := tpLower;
DThread.Resume;

_

чего не хватает ? всё напишу


KSergey   (2004-08-19 20:51:00) [3]

Ну приведенного кода явно очень мало.
А вообще - отладчик в зубы - самый верный ход.
Предполагать можно что угодно: от неинициализированности DThread до фиг знает чего ;)
А может с этими InternetCloseHandle вообще не чисто в части потоков? Хотя сомнительно..


Наверх

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