Форум: "Базы";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
ВнизОтмена DataSet.Open в потоке Найти похожие ветки
← →
Санёк (2004-11-05 12:44) [0]Создаю поток в котором
procedure TDBThread.Execute;
DataSet := TADODataSet.Create(nil);
DataSet.ConnectionString := ConnectionString;
DataSet.CommandText := CommandText;
try
DataSet.Open;
except
end;
end;
потом прибиваю его
TerminateThread(DBThread.Handle, 0);
DBThread.DataSet.Free;
DBThread := nil;
всё работает и так как именно хотелось. Но, есть проблема, память не освобождается. При запуске нового потока программа только увеличивается в размере. Как освободить память?
← →
KSergey © (2004-11-05 12:49) [1]Чем память мерял?
Да и создать объект в одном потоке, уничтожить в другом... Впрочем, межет и не страшно, коль скоро того потока уже и нет...
Вот только TerminateThread в любом случае будет приводить к утечкам - ведь создается не только экземпляр DataSet, но и DBThread как минимум. Хотя его, наверное, можно уничтожить (в смысле дельфийский объект), а вот связаннве с ним системные ресурсы... только по закрытию проги...
← →
Санёк (2004-11-05 12:57) [2]Память мерял "Диспетчер задач Windows":), неужели никак нельзя??? Как же можно прервать открытие набора данных????
← →
KSergey © (2004-11-05 13:57) [3]> [2] Санёк (05.11.04 12:57)
> Память мерял "Диспетчер задач Windows":),
Миллионы раз писалось тут - врет он!
← →
sniknik © (2004-11-05 14:46) [4]не врет, просто неправильно считает ;о), вернее считает не то чего юзеры ожидают, ожидают только память программы а оно дает всю пямять задействованную прогой и используемыми модулями (dll/com обьектами/...)
а только память программы в виндах это нечто мифическое. ;о))
> Как же можно прервать открытие набора данных????
элементарно, close, только открываться он должен в асинхронном режиме, иначе не будет доступа к методу до полного завершения открытия.
← →
Санёк (2004-11-05 15:34) [5]"Не удается выполнить операцию во время ассинхронного выполнения" это при закрытии приложения после Close. И выполнив Close программа всё равно продолжает жрать память... Что с этим делать???
← →
Санёк (2004-11-05 15:35) [6]Удалено модератором
Примечание: дубль
← →
Санёк (2004-11-05 15:35) [7]Удалено модератором
Примечание: дубль
← →
KSergey © (2004-11-05 16:59) [8]Возможно не Close, а cancel или что-то такое
А вообще точно помню недавно тут было подобное, автора тоже направили по пути асинхронных запросов, правда ему все хотелось мнгновенной реакции, но она не получается. Сам что-то тоже экспериментировал на волне обсуждения, но в упор не помню.
Наверное просто прибивать тред не стоит. Достаточно по нажании кнопки пользователем сделать вид что все прервано. Ну а там уж попытаться завершить внутри потока всю эту галиматью (а то и вовсе без потока - при асинхронном-то режиме).
Ну а если ему еще и прогу приспичило закрыть - ну тогда либо "ждите отмены", либо прибить - тут уже все равно в принципе.
← →
sniknik © (2004-11-05 17:39) [9]никаких "ждите", не нужно. посмотри почту.
← →
Санёк (2004-11-05 17:47) [10]А мне можно посмотреть???? Tualan@yandex.ru
← →
KSergey © (2004-11-06 10:26) [11]> sniknik © (05.11.04 17:39) [9]
> никаких "ждите", не нужно. посмотри почту.
А мне, мне... ;)
Может сюда?
← →
sniknik © (2004-11-06 12:18) [12]> А мне, мне... ;)
так тебе и высылал... не дошло? мыло s_wr@mail.ru нерабочее?
> Может сюда?
куда сюда? кладовка не работает. и потом до вторника все откладывается в любом случае, с работы слал, пример хоть и простенький но набивать повторно желания нет.
← →
KSergey © (2004-11-06 13:39) [13]Не на, повторно не надо ;)
Я имел в виду сразу в форум - ну да ладно. Спасибо.
← →
Санёк (2004-11-09 11:25) [14]А можно всё же примерчик получить???
← →
sniknik © (2004-11-09 15:48) [15]выслал. ты бы почту сразу указывал и в положенном месте, как все нормальные люди. а то еще искать нужно, да копировать а не тычком мыши... мрак в общем. обычно на такое не отвечают.
← →
Fay © (2004-11-09 16:58) [16]2 sniknik © (09.11.04 15:48) [15]
Вас не затруднит отправить и мне то же самое? Plz.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.034 c