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

Вниз

Кому и когда надо делать Canvas.Lock?   Найти похожие ветки 

 
Aleksandr ©   (2003-11-06 14:29) [0]

У меня несколько потоков обращаются к главному окну программы, у которого есть панель внизу. По их обращениям на этой панели создаются прогрессбары, показывающие ход выполнения потоков, а по их терминировании уничтожаются. Когда и у кого из объектов (главной формы, панели) надо делать лок канвы при создании, прорисовке и уничтожении прогрессбаров?


 
Palladin ©   (2003-11-06 16:08) [1]

ну представь себе что canvas енто туалет, рисование на canvas, это его посещение, вызов Lock это закрыть его дверь изнутри, а потоки это домочадцы...

исходя из этого и думай... как сделать так что бы в один и тот же прекрасный момент не возник конфликт домочадцев...


 
Digitman ©   (2003-11-06 16:34) [2]


> Когда надо .. делать лок канвы


не трогай канву)
оставь эту задачу осн.потоку процесса - он с ней прекрасно справится сам, а ты не наживешь при этом себе геморрой

диспетчером-арбитром "сортира" уже сам по себе является цикл выбоки/диспетчеризации оконных сообщений осн.потока процесса, он (осн.код.поток) "блюдет" очередь обращений к VCL-контролам и не допустит бардака, если каждый доп.код.поток, заинтересованный в изменении св-в VCL-контролов, будет так же "блюсти" очередность, ставя свои запросы в общую очередь, а не пытаясь "внаглую" лезть в общий "сортир"

см. метод TThread.Synchronize(), который как раз и предназначен для этого


 
Aleksandr ©   (2003-11-06 16:53) [3]

Спасибо.



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

Текущий архив: 2003.11.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.036 c
1-56633
незнай-ка
2003-11-05 13:35
2003.11.17
Вылетает ошибка.. в чем дело?


1-56721
RoLeX
2003-11-06 20:49
2003.11.17
Как написать следующее условие: если X не равен Edit2.text, то...


4-56945
subdigger
2003-09-24 11:32
2003.11.17
Always on top


4-56966
kkostik
2003-09-23 10:40
2003.11.17
Перехват WinAPI


3-56434
Шурик Ш
2003-10-29 16:22
2003.11.17
Компоненты ADO вместо BDE