|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.07.2011, 01:34 | #1 |
Регистрация: 08.01.2009
Сообщений: 7
|
Потоки и CriticalSection
Написал свой класс. Есть процедура прорисовки RedrawItem.
TMyList = class(TCustomControl) public RedrawItem(...); ... procedure RedrawItem(...); begin CriticalSection.Enter; ... CriticalSection.Leave; end; Прорисовка происходит по нажатию мышой и в отдельном потоке. Так вот, если одновременно происходит прорисовка в потоке и происходит нажатие мышой, то появляется ошибка. Вопрос - почему? Ведь прорисока находится в критической секции |
18.07.2011, 02:39 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
у нажатия мышки и у потока разные обработчики. И слекдовательно в потоке юзается крит. секция а в нажатии мышкой - нет.
И где инициализация и финализация крит.секции? Не проще ли сделать перерисовку в отдельном методе с исп. крит секций. А затем этот метод использовать и в нажатии мышкой и в потоке. |
18.07.2011, 04:50 | #3 |
Регистрация: 08.01.2009
Сообщений: 7
|
Инициализация и финализация крит.секций в конструкторе и деструкторе класса соответственно.
Что значит в отдельном методе? |
18.07.2011, 09:59 | #4 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
ок:
Код:
|
18.07.2011, 12:57 | #5 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> TCustomControl
работа с любым VCL контролом должна происходить только в главном потоке. Отсюда выводы: 1) Критическая секция до лампочки 2) про Synchronize() не забываем
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
потоки | Cpluser | Общие вопросы .NET | 5 | 15.02.2011 22:17 |
потоки | Cpluser | C# (си шарп) | 0 | 14.02.2011 21:24 |
Потоки | StudeHt | Помощь студентам | 1 | 06.05.2010 16:26 |
CriticalSection -> зависание программы | PUH | Помощь студентам | 1 | 05.11.2009 13:19 |