Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
14-8648
Knight
2003-10-12 00:08
2003.11.03
Что вы думаете, про альтруизм и альтруистов?


14-8650
Кулюкин Олег
2003-10-14 15:10
2003.11.03
Правила Ашманова. Об управлении проектами


1-8436
Vivk
2003-10-21 19:13
2003.11.03
Редактирование записей в StringGrid


1-8501
MaG
2003-10-23 20:02
2003.11.03
Шрифт


3-8292
Vadim S
2003-10-13 14:02
2003.11.03
КАк определить номер ... при прорисовывании в DBGrid




   Наверх