Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.03;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
1-8454
Мунька
2003-10-21 18:23
2003.11.03
TExcelApplication


3-8269
vidiv
2003-10-14 06:00
2003.11.03
Решение задач по FoxPro


1-8496
MaG
2003-10-23 21:14
2003.11.03
Компоненты


4-8717
Evgeniy
2003-08-29 14:37
2003.11.03
Передвижение формы по экрану


1-8368
Stepasha
2003-10-22 23:33
2003.11.03
Графика