Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
ВнизПроцессы и потоки Найти похожие ветки
← →
sav (2004-03-18 09:54) [0]Как завершить дополнительный поток наполнения компонента "Дерево"
← →
Digitman © (2004-03-18 10:01) [1]точно так же как и завершить поток наполнения компонента "Кустарник")
при чем здесь "Дерево" или "не Дерево" ?
алгоритм твоей поточой ф-ции, делай она хоть "Дерево" хоть "Кустарник", должен тем или иным образом предусматривать периодическую/эпизодическую проверку некоего "флага", предписывающего поточной ф-ции как можно быстрей завершить работу предусмотренного ей алгоритма и вернуть управление
"флаг" должен взводиться тем код.потоком, который заинтересован в завершении интересующего тебя код.потока
← →
sav (2004-03-18 10:12) [2]Я завершаю процесс при помощи Terminate
Однако при закрытии формы выпадает ошибка Процесс не завершен
← →
Digitman © (2004-03-18 10:20) [3]
> Я завершаю процесс при помощи Terminate
да не процесс ты завершаешь, а как раз взводишь тот самый флаг
кодовый же поток волен реагировать или не реагировать на состояние этого флага ... у тебя. очевидно реакция эта не предусмотрена, оттого и проблемы
procedure TMyThread.Execute;
begin
while not Terminated do // вот она, проверка состояния флага !!
begin
//здесь делаешь что-то, желательно не слишком длительное по времени, чтобы как можно чаще проверять состояние флага
end;
end;
← →
sav (2004-03-18 11:19) [4]Как раз выполняется очень длительное по времени
Есть ли какая нибудь процедурка остановки?
← →
Digitman © (2004-03-18 11:31) [5]
> Как раз выполняется очень длительное по времени
алгоритм циклический там ? если нет - переделывай в циклический, так чтобы при каждой итерации проверять флаг и немедленно завершать цикл как положено
все остальные программные решения - через "причинное место" и приведут тебя к печальным последствиям
← →
sav (2004-03-18 12:10) [6]Спасибо за совет!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.031 c