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

Вниз

Завершение thread Не происходит   Найти похожие ветки 

 
Fantnk ©   (2009-11-07 21:16) [0]

В программе на Delphi создал Procedure MyThread.Execute, выполняющую несколько циклов и выводит прогрессбар (отдельная форма).
После всего этого поток не закрывается. Terminated = false. Как мне закрыть поток (принудительно или как - не важно). Важно то, чтобы программа корректно закрылась, а не с EOSError (не верный дескриптор окна, #1400).
Помогите, пожалуйста.


 
Сергей М. ©   (2009-11-07 21:21) [1]


> Важно то, чтобы программа корректно закрылась


Исправь ошибку в теле Execute - будет закрываться корректно.


 
Fantnk ©   (2009-11-07 21:24) [2]


> Исправь ошибку в теле Execute - будет закрываться корректно.

При компиляции никаких ошибок не выдало...


 
Сергей М. ©   (2009-11-07 21:27) [3]

И что ?
Компилятор не обязан ловить ошибки логики, приводящей к катастрофе алгоритма в ран-тайм


 
Сергей М. ©   (2009-11-07 21:28) [4]


> выводит прогрессбар


Обращения к визуальным VCL-контролам из доп.потоков VCL-приложения недопустимы.


 
Fantnk ©   (2009-11-07 21:34) [5]

Т.е. я не могу выводить не только прогресс бар, но и, допустим, вносить к-либо значения в edit"ы?
Кусок из процедуры Thread:
 Form1.Memo1.CopyToClipboard;
 sleep(10);
 Form1.Edit1.PasteFromClipboard;

Это не допустимо?
Есть альтернатива потокам? Мне нужно, чтобы шлавная форма не подвисала во время выполнения программы.


 
Сергей М. ©   (2009-11-07 21:41) [6]


> Это не допустимо?


Да, это не допустимо.


> нужно, чтобы шлавная форма не подвисала во время выполнения
> программы


Для этого предусмотрен метод TThread.Synchronize - он поставит в хвост очереди осн.потока "команду" на выполнение указанного тобой метода твоего класса TMyThread, в котором можно будет безопасно обращаться к виз. VCL-контролам.


 
Anatoly Podgoretsky ©   (2009-11-07 21:44) [7]

> Fantnk  (07.11.2009 21:16:00)  [0]

А надо Terminated = true



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

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

Наверх





Память: 0.45 MB
Время: 0.007 c
2-1257940219
Tornado
2009-11-11 14:50
2009.12.27
Вопрос по DBComboBox


1-1231824463
inferno
2009-01-13 08:27
2009.12.27
Передать параметром процедуре указатель на массив


2-1257532084
Незнайка
2009-11-06 21:28
2009.12.27
вызов KeyPress


15-1256486186
berlios
2009-10-25 18:56
2009.12.27
Задачка


15-1256481374
berlios
2009-10-25 17:36
2009.12.27
Треугольник





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский