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

Вниз

ThreadSafe...   Найти похожие ветки 

 
Makhanev A.S. ©   (2004-04-25 15:23) [0]

Вариант-1.
Есть поток.
Он генерит событие.
В обработчике события идёт обращение к VCL.

Вариант-2.
Есть поток.
Он генерит событие.
В обработчике события (обрабатывается наследником TComponent) генерится другое событие.
В "другом" обработчике идёт обращение к VCL.

Вопрос: здесь есть потокобезопасный вариант?

P.S.:Synchronize нигде не используется.


 
Digitman ©   (2004-04-25 15:28) [1]


> здесь есть потокобезопасный вариант?


нигде


 
Digitman ©   (2004-04-25 15:31) [2]

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

механизм вызова процедур посылки/обработки оконных сообщений при этом не рассматривается - он работает по-иному


 
Makhanev A.S. ©   (2004-04-25 18:20) [3]

Выход:
чтобы сгенерить событие из потока, всегда используем Synchronize?

Что-то вроде: Synchronize(DoSomeEvent)

procedure TMyThread.DoSomeEvent;
begin
 if Assigned(FOnSomeEvent) then FOnSomeEvent(params...)
end;


 
evvcom ©   (2004-04-26 02:02) [4]

Что-то вроде. А вообще в исходниках можно посмотреть, как реализован вызов TThread.OnTerminate;


 
Talla2k ©   (2004-04-26 02:07) [5]

Лично я делаю так:
-во вторичном потоке посылаю сообщение(что-то типа wm_user или если не лень то RegisterWindowMessage)
-в главном потоке проги улавливаю это сообщение и обращаю к VCL.


 
Makhanev A.S. ©   (2004-04-26 14:50) [6]


> Digitman ©  

Просьба проверить почту.



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

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

Наверх




Память: 0.47 MB
Время: 0.028 c
1-1083230319
Петя
2004-04-29 13:18
2004.05.16
Автоскрол в TRichEdit


1-1083329703
Виктор
2004-04-30 16:55
2004.05.16
Reset(Vf1, 1) пишет acces denied на ресурсе read-only


14-1083052292
Slon_SCG
2004-04-27 11:51
2004.05.16
Автоматическое восстановление БД InterBase после сбоя


14-1082881178
Piter
2004-04-25 12:19
2004.05.16
Почему TCP/IP?


1-1083299231
Denizzz
2004-04-30 08:27
2004.05.16
Как свернуть активное Dos-приложение?