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

Вниз

why?   Найти похожие ветки 

 
ananimious   (2003-10-23 22:00) [0]

Создавая свой компонент вынес кусок кода, в котором выполняется длительное действие в отдельный поток. И теперь, когда оно выполняется окно программы виснет (временно). Почему, ведь за отрисовку окна отвечает основной поток, а длительное действие выполняется в другом?


 
romeo   (2003-10-23 22:04) [1]

А может нужен Application.ProcessMessages?..
А может и нет...


 
Rouse_   (2003-10-23 22:11) [2]

Видимо отрисовка окна вызывается из потока. Если так то поток теряет свое преимущество.

Желаю успехов


 
Alex134   (2003-10-23 22:41) [3]


> А может нужен Application.ProcessMessages?..
> А может и нет...

Может и нет )


> Rouse_ © (23.10.03 22:11) [2]
> Видимо отрисовка окна вызывается из потока. Если так то
> поток теряет свое преимущество.

Главный поток получает сообщения виндовс и отрисовывает окно программы,
Второй поток работает паралельно главному, в нем выполняются продолжительные действия. Какая между ними связь?


 
Rouse_   (2003-10-23 22:52) [4]

Если во втором потоке есть что либо похожее на Form1.Label1.Caption := ... или тому подобное, то сами подумайте какая может быть связь? Кода я не вижу поэтому просто высказываю предположения.

Желаю успехов


 
jack128   (2003-10-23 22:56) [5]


> Если во втором потоке есть что либо похожее на Form1.Label1.Caption
> := ...

Если прямо так и написано, то это ГРУБАЯ ошибка - можно огрести неприятные ошибки.. см TThread.Synchronize

если же используется часто используется TThread.Synchronize то доп. поток действительно теряет свои преимущества(так как ожидает окончания перерисовки в основном потоке) тут нужно использовать PostMessage(..);


 
Rouse_   (2003-10-23 23:01) [6]

> jack128 © (23.10.03 22:56) [5]
Привел просто в качестве примера, кстати много раз видел именно такой вариант кода, когда человек и понятия не имеет о Synchronize.

Желаю успехов


 
ananimious   (2003-10-23 23:53) [7]

Поток2 не работает с формой вообще


 
Rouse_   (2003-10-24 00:04) [8]

> ananimious (23.10.03 23:53) [7]
Приведите код, иначе и дальше будут высказываться предположения о возможных недочетах. Два вам привели.

Желаю успехов



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

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

Наверх





Память: 0.45 MB
Время: 0.008 c
1-8487
Mag
2003-10-24 17:32
2003.11.03
Бегущая строка


14-8585
mrddim
2003-10-15 15:05
2003.11.03
Delphi - Кто Это?


14-8605
k-man
2003-10-15 18:09
2003.11.03
Небольшой вопрос от начинающего в C++


3-8303
uu
2003-10-13 13:10
2003.11.03
обьединение таблиц


3-8306
miklo
2003-10-13 13:14
2003.11.03
Перекодировка базы Dos-Win1251 в Interbase v.5.6





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