Форум: "Основная";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
ВнизНе получаеться остановить поток Найти похожие ветки
← →
Фёдор Мегатронов (2004-08-19 20:39) [0]Вобщем в потоке у меня качаеться файл из инета.
И идёт проверка на terminated.
закачка идёт пока не кончился фаил или пока не terminated.
На главной форме есть кнопка "Остановить"
с кодом
ShowMessage("Процесс приостановлен");
DThread.Terminate;
Когда я нажимаю на эту кнопку во процессе закачки, то вижу
сначала надпись "Процесс приостановлен" а за тем исключение: EAccessViolation по такому-то адресу.
В потоке после проверки на terminated у меня сделаны и InternetCloseHandle(hURL) и InternetCloseHandle(hSession);
Вот я не могу разобраться в чём проблема.
Может быть останавливать поток в котором открыта инет сессия нужно как-то по другому ? потому что в других прогах с потоками всё работает отлично.
← →
KSergey © (2004-08-19 20:51) [1]Ну приведенного кода явно очень мало.
А вообще - отладчик в зубы - самый верный ход.
Предполагать можно что угодно: от неинициализированности DThread до фиг знает чего ;)
А может с этими InternetCloseHandle вообще не чисто в части потоков? Хотя сомнительно..
← →
Фёдор Мегатронов (2004-08-19 21:09) [2]поток инициализирую так
DThread := ThreadClass.Create(true);
DThread.Priority := tpLower;
DThread.Resume;
_
чего не хватает ? всё напишу
← →
KSergey © (2004-08-19 21:14) [3]Ну тогда отладчиком полазить по ветке, где ловится флаг Terminate...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c