Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];

Вниз

Вопросы по Thread   Найти похожие ветки 

 
starter   (2004-09-27 22:22) [0]

Вешаю на кнопку длительный расчет. Должна быть возможность остановки расчета, соответственно для доступности кнопки останова - расчет в отдельный thread. Кидаю на форму MCK компонент TKOLThread, сам расчет - в OnExecute, в OnClick стартовой кнопки - Thread1.Execute. Запускаю - пока идет расчет ни форма, ни одна кнопка на ней не реагируют. Applet.ProcessMessages не помог. С каждым новым расчетом память по 16К утекает, если AutoFree:= true; то кнопка запуска расчета становится одноразовой.

Если же делать без MCK компонента

procedure TForm1.BitBtn1Click(Sender: PObj);
var thr: PThread;
begin
thr:= NewThread;
thr.OnExecute:= Raschet;
thr.Resume;
end;

то кнопочки на форме доступны, но память все равно по 16К утекает.

Ну и вопросы собсно такие: почему МСК-овский Thread так себя ведет и как правильно освобождать память после использования Thread, куда вставлять thr.Free.


 
SPeller ©   (2004-09-28 09:47) [1]

В случае с MCK тоже вызывай Resume вместо Execute. На счет утечки памяти - это у тебя твой метод утечки даёт. Попробуй сделать пустой метод OnExecute и посмотри, будет ли утекать в этом случае.


 
starter   (2004-09-28 12:11) [2]

На счет утечки памяти очень извиняюсь, оно в самом деле у меня происходит.

Замена Execute на Resume дала положительный результат, но кнопка запуска стала одноразовой, второй раз запустить расчет невозможно, AutoFree выставлен в false.


 
SPeller ©   (2004-09-28 14:34) [3]

После отработки твоей процедуры надо вернуться в её начало и вызвать Suspend, потому что поток автоматически (виндовой объект) уничтожается после выхода из процедуры. AutoFree же указывает уничтожать ли объект типа TThread после завершения потока.


 
Paha   (2005-03-09 02:35) [4]

Дайте, пожалуйста, пример реализиции Thread.
Задача такая: в Label1 и Label2 с интервалом 50мс генерится число Random(100).
Так вот хочется, чтобы генерация и показ этих чисел в лебелах был разделен в потоках Thread1 и Thread2 соответствено. Напишите плз рабочую реализацию.


 
SPeller ©   (2005-03-09 11:30) [5]

Paha   (09.03.05 2:35) [4]
20 баксов.


 
Paha   (2005-03-09 12:19) [6]

>> Speller
Большое спасибо за помощь. За 20 баков мне в одном месте про потоки разжуют и в рот положат.



Страницы: 1 вся ветка

Форум: "KOL";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.055 c
2-1128628571
leonw
2005-10-06 23:56
2005.11.06
Directory


3-1127905586
Бульбаш
2005-09-28 15:06
2005.11.06
Передача строкового параметра


14-1129143627
NightLord
2005-10-12 23:00
2005.11.06
Папка


1-1129137427
Rianon
2005-10-12 21:17
2005.11.06
Проблема с Dll и формами


2-1129308522
d_savrasov
2005-10-14 20:48
2005.11.06
QucikReport





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский