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

Вниз

Создание нити и отправка ей сообщения.   Найти похожие ветки 

 
Игорь_   (2006-10-04 17:39) [0]

Здравствуйте !
Пробую дождатся когда нить примет сообщение:
hThread:=BeginThread(nil, 0, @TestThread, pParam, 0, ThreadID);
_OK:=PostThreadMessage(ThreadId, MY_MESSAGE, MY_LPARAM, LParam(pParam));
while not _OK do
 begin
  Sleep(0);
  _OK:=PostThreadMessage(ThreadId, MY_MESSAGE, MY_LPARAM, LParam(pParam));
 end;
А как узнать, что пора прекращать цикл отправки сообщений ?
Может нить там зависа и не реагирует ?


 
Leonid Troyanovsky ©   (2006-10-04 17:43) [1]


> Игорь_   (04.10.06 17:39)  

> Пробую дождатся когда нить примет сообщение:


Для того, чтобы дождаться окончания обработки
нитью посланного сообщения нужно снабдить нить окном.
Ну, и посылать, соо-сно, окну путем SendMessage.

--
Regards, LVT.


 
MsGuns ©   (2006-10-04 17:53) [2]

Если нить без собственного окна, то обмен сообщениями можно реализовать через некий объект (типа record), созданный основным потоком. Перед созданием и запуском вторичного первичный создает эту запись, помещает туда нужную информацию и создает вторичный поток, передавая ему указатель на этот объект. Вторичный поток  может "опрашивать" посылаемые первичным потоком "сигналы", просто проверяя содержимое объекта обраящаясь к нему через переданный указатель.
Ответы вторичный поток также может посылать "инициатору" через поля объекта напрямую или используя метод Sinchronize


 
Игорь_   (2006-10-04 18:01) [3]

Мне не надо ждать конца работы нити. Я хочу, просто, быть уверенным,
что она получила мое сообщение и спокойно идти дальше,
а ноа пусть своими делами занимается :))


 
Ketmar ©   (2006-10-04 18:02) [4]

пусть дёргает Event, например. %-)


 
Leonid Troyanovsky ©   (2006-10-04 18:05) [5]


> Игорь_   (04.10.06 18:01) [3]

> что она получила мое сообщение и спокойно идти дальше,


Win32Check(PostMessage())

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2006-10-04 18:16) [6]


> Leonid Troyanovsky ©   (04.10.06 18:05) [5]

> > что она получила мое сообщение и спокойно идти дальше,


А.. Sorry.

Видимо, имелось ввиду тот момент, когда поток будет готов
к приему сообщений.

Ну, в этом случае, дейс-но, нужен event [4].
Кстати, в такой архитектуре не нужен и цикл обработки сообщений.
Т.е., вторичному потоку не нужно быть GUI thread,
достаточно одних events.

--
Regards, LVT.


 
Игорь_   (2006-10-04 18:18) [7]

Спасибо Большое !



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

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

Наверх




Память: 0.48 MB
Время: 0.029 c
15-1159383314
x.pro
2006-09-27 22:55
2006.10.22
Mobile phone tools 4


2-1160134583
Korneley
2006-10-06 15:36
2006.10.22
Удаленное управление задачами


2-1160299105
lobach
2006-10-08 13:18
2006.10.22
Поиск


2-1160336277
vain
2006-10-08 23:37
2006.10.22
Form.Refresh


2-1159784197
Димыч
2006-10-02 14:16
2006.10.22
Процессорное время