Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];

Вниз

Одновременная посылка сообщения всем дочерним потокам   Найти похожие ветки 

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

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


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


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

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

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


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

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


 
Fay ©   (2004-07-23 12:23) [3]

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


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

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


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

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


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

2 Fay ©  

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

2 Суслик ©  

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


 
VMcL ©   (2004-07-23 13:10) [7]

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

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


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


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

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

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

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


 
Fay ©   (2004-07-23 13:32) [9]

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


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


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

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


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

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


 
Smithson ©   (2004-07-23 15:33) [12]

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


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


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

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

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

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


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


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

в этом

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


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



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

Форум: "Основная";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.062 c
1-1090606254
sashok
2004-07-23 22:10
2004.08.08
Динамически создаваемые компоненты.


1-1090403696
Mell
2004-07-21 13:54
2004.08.08
как получить handle контрола на чужей форме


1-1090685460
Mental_Ray
2004-07-24 20:11
2004.08.08
работе с TThread


14-1090427637
Саша
2004-07-21 20:33
2004.08.08
Turbo Debugger


3-1089880727
Алексей
2004-07-15 12:38
2004.08.08
Смерть ADO. Как восстановить?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский