![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Ламо |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 27.12.2006 Репутация: нет Всего: нет |
Доброго времени суток, господа!
Суть проблемы в следующем: Есть желание изобразить в отдельном потоке что-то типа цикла обработки сообщений с функцией обработки этих самых сообщений соответственно (типа как в WinAPI). Мне это все представляется как проверка "очереди" в бесконечном цикле и вызов соответствующего обработчика с соответствующими же парпметрами. И вот отсюда начинают возникать вопросы... 1) следует ли вызывать этот самый обработчик также в новом потоке для предотвращения "заморозки" всей очереди сообщений? Или может уже в обработчикереагировать на события в разных потоках? Или еще как-то? 2) как организовать сам цикл, чтоб не переусердствовать с нагрузкой на проц. + еще связаный вопрос: возможно ли организовать автоматический вызов события, т.е. не проверяя вручную условие для наступления этого события? Так, например, если в стриме появились данные для чтения, то вызвать какое-то событие. Вот кажется и все. Жду ваших мнений. |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Если речь о своём приложении (т.е. события из своей проги), то поможет Application.AddMessageFilter в паре со своим объектом, реализующим интерфейс IMessageFilter. Если речь о перехвате сообщений из других окон системы, то копать нужно в сторону windows hook-ов (SetWindowsHookEx и т.п.), кое-какие примеры есть на http://www.codeproject.com и http://www.rsdn.ru
-------------------- ![]() |
|||
|
||||
Ламо |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 27.12.2006 Репутация: нет Всего: нет |
Спасибо. Речь идет о своем приложении. Для понятности скажу, что в данный момент это попытка слепить управляемый поток, т.е. ход выполнения которого будет управляться основным потоком приложения, в зависимости от действий юзера. Таким образом обработчик сообщений потока будет получать только ползовательские сообщения, и управляемый поток никогда не должен завершаться, а тупо ждать инструкций, пока не получит какой-нибудь MESSAGE_END.
|
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |