Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Одновременная посылка сообщения всем дочерним потокам [D7, WinXP]


ColoredCD-R ©   (2004-07-23 12:13:00) 

Возможно ли сделать сабж? Запуск в цикле PostThreadMessage не годится, т.к. не одновременно придет 1-е и последнее сообщение.


Суслик   (2004-07-23 15:41:00) [1]


> В чем заключается моя глупость?

в этом

> т.к. не одновременнопридет 1-е и последнее сообщение.


ЗЫ.
Без обид, я просто на вопрос отвечал


Суслик   (2004-07-23 15:39:00) [2]


> А в книге я не нашел ответа на мой вопрос.

книга минимум 600 страниц.
указанная мной глава минимум 80 страниц. Я ее в свое время неделю читал :))

В общем так:
1) Если потоку НЕ нужно обрабатывать очередь сообщений, то используй event (manual reset)+ waitforsingleobject()
2) Если потому НУЖНО обрабатывать очередь сообщений, то у тебя два варианта:
  1) Все последовательнос послать сообщения через PostThreadMessage
  2) Также воспльзоваться event, но только НЕ waitforsingleobject, а MsgWaitForMultipleObjects.

Все, этого достаточно. Выбирай сам, что тебе больше нравится.


Smithson   (2004-07-23 15:33:00) [3]

Передать сообщение больше чем одному получаетлю одновремненно в windows невозможно. Только последловательно. Что тут непонятного?
Если тебе критично именно одновременное (паралельное) уведомление, то сделать это можно только атомарной операцией. Тебе предложили использовать для этого event. Сбросил event - передал сообщение. Что тут непонтного?


ColoredCD-R   (2004-07-23 14:49:00) [4]

Я вообще-то не глупствовал, а задал актуальный вопрос. А на счет потоков, я там знаю многое, т.к. только такие проги заказывают. В чем заключается моя глупость?
А в книге я не нашел ответа на мой вопрос.


Суслик   (2004-07-23 14:21:00) [5]


> Fay ©   (23.07.04 13:32) [9]

прости, не врено составил фразу.
:)


Fay   (2004-07-23 13:32:00) [6]

2Суслик ©   (23.07.04 13:26) [8]
Тоже? А ко мне каким боком?


Суслик   (2004-07-23 13:26:00) [7]


> ColoredCD-R   (23.07.04 13:07) [6]
> 2 Fay ©  
>
> Не знаешь - не глупствуй.

к тебе это тоже относится.
Почитай рихтера (ссылку дали), многое поймешь...

вообще тебе надо его всего читать: про потоки уж как минимум.

ЗЫ.
Если времени нет особо читай целенаправелно про event. В дельфи есть класс обертка - я его выше присел.


VMcL   (2004-07-23 13:10:00) [8]

>>ColoredCD-R  (23.07.04 13:07) [6]

http://podgoretsky.com/ftp/Docs/Classics/Richter/


ColoredCD-R   (2004-07-23 13:07:00) [9]

2 Fay ©  

Не знаешь - не глупствуй.

2 Суслик ©  

Сенкс. Как полностью книга называет, чтоб я ее мог купить. И мог бы ты посмотреть там в общих чертах, что использует автор, чтобы достичь сабжа? Какие АПИ ф-ции может юзает?


Суслик   (2004-07-23 12:28:00) [10]

можешь посмотерть в книге Рихтера 4 изд главу 26, там есть, что тебе нужно.


Суслик   (2004-07-23 12:27:00) [11]

вам рано за это браться...
в общем-то я уже сказал выше про tevent.
это то, что вам нужно.


Fay   (2004-07-23 12:23:00) [12]

"Одновременно" - это миф. Существует только у Вас в голове.


ColoredCD-R   (2004-07-23 12:21:00) [13]

Дак надо чтоб СООБЩЕНИЕ было отослано одновременновсем потокам! И все равно как там они будут черездоваться, гдавное чтоб я знал, что я отослал всем сообщение одновременно... и осн. прогармма перешла к выполнению последующих операторов...


Суслик   (2004-07-23 12:16:00) [14]


> т.к. не одновременно придет 1-е и последнее сообщение.

а это вам вообще не светит. Потоки выполняются поочередно.

Чую вам нужна TEvent какой нить с manual reset.


Наверх

Титульная страница Поиск, карта сайта Написать письмо