|
Нужно висеть и слушать. Как корректно это сделать.
|
|||
---|---|---|---|
#18+
Есть некий провайдер, который генерит события. Я подписываюсь на получение событий и вот теперь должен слушать, что приходит. Как корректней это сделать? Я имею ввиду зависнуть и слушать. P.S. Это консольное приложение. Пока сниматься будет при помощи закрытия окна. Потом сделаю, чтобы ловил команды винды. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2015, 11:28 |
|
Нужно висеть и слушать. Как корректно это сделать.
|
|||
---|---|---|---|
#18+
это конкурс на тему "угадай, кто генерит"? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2015, 11:59 |
|
Нужно висеть и слушать. Как корректно это сделать.
|
|||
---|---|---|---|
#18+
Antonariyэто конкурс на тему "угадай, кто генерит"?Какая разница? При отсутствии гарантии доставки пакетов по сети серверные события нужно отлавливать опросом с клиента по таймеру. Всё остальное от лукавого. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2015, 12:10 |
|
Нужно висеть и слушать. Как корректно это сделать.
|
|||
---|---|---|---|
#18+
Обработка и вызов событий Antonariyэто конкурс на тему "угадай, кто генерит"? Сказано же - провайдер :) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2015, 12:10 |
|
Нужно висеть и слушать. Как корректно это сделать.
|
|||
---|---|---|---|
#18+
Не, серьезно. Windows окно висит и проц не грузит. Нужно тоже самое сделать в консоли. Пока вижу только один выход: Код: c# 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2015, 12:18 |
|
Нужно висеть и слушать. Как корректно это сделать.
|
|||
---|---|---|---|
#18+
Алексей КПри отсутствии гарантии доставки пакетов по сети серверные события нужно отлавливать опросом с клиента по таймеру. По таймеру не хочу. Какой шаг брать в таймере. 1 час? 1 минута? 1 секунда. А вдруг события посыпятся, как из рога изобилия, а таймер будет бездельничать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2015, 12:22 |
|
Нужно висеть и слушать. Как корректно это сделать.
|
|||
---|---|---|---|
#18+
vlsafНе, серьезно. Windows окно висит и проц не грузит. Нужно тоже самое сделать в консоли. Console.ReadLine? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2015, 12:30 |
|
Нужно висеть и слушать. Как корректно это сделать.
|
|||
---|---|---|---|
#18+
vlsafАлексей КПри отсутствии гарантии доставки пакетов по сети серверные события нужно отлавливать опросом с клиента по таймеру. По таймеру не хочу.Всё остальное найопка. Клиент сидит, событий нет. Событий действительно нет или технические проблемы - не понятно. В случае с таймером при технических проблемах будет возникать сообщение об ошибке. vlsafКакой шаг брать в таймере. 1 час? 1 минута? 1 секунда.Сделай настройку, если не уверен. vlsafА вдруг события посыпятся, как из рога изобилия, а таймер будет бездельничать.Не понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2015, 12:32 |
|
Нужно висеть и слушать. Как корректно это сделать.
|
|||
---|---|---|---|
#18+
Алексей КНе понял.Это я уже гоню ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2015, 13:56 |
|
Нужно висеть и слушать. Как корректно это сделать.
|
|||
---|---|---|---|
#18+
Алексей КВ случае с таймером при технических проблемах будет возникать сообщение об ошибке. Эээ... А без таймера не будут? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2015, 13:58 |
|
Нужно висеть и слушать. Как корректно это сделать.
|
|||
---|---|---|---|
#18+
vlsafЕсть некий провайдер, который генерит события. Я подписываюсь на получение событий и вот теперь должен слушать, что приходит. Как корректней это сделать? Я имею ввиду зависнуть и слушать. P.S. Это консольное приложение. Пока сниматься будет при помощи закрытия окна. Потом сделаю, чтобы ловил команды винды. Что за провайдер? Что за события? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2015, 15:12 |
|
Нужно висеть и слушать. Как корректно это сделать.
|
|||
---|---|---|---|
#18+
vlsafАлексей КВ случае с таймером при технических проблемах будет возникать сообщение об ошибке. Эээ... А без таймера не будут?Ну а как без запроса к серверу клиент определит "жив" ли сервер? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2015, 15:23 |
|
Нужно висеть и слушать. Как корректно это сделать.
|
|||
---|---|---|---|
#18+
Запроса к серверу не будет. Будет только подписка на события типа такого: _communicationClient.OnSystemMessageReceived += OnSystemMessageReceived; _communicationClient сторонняя библиотека (черный ящик). Я его инициализирую и только. Потом подписываюсь на события и жду когда они придут, чтобы обработать. Таймер тут курит в сторонке. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2015, 15:52 |
|
Нужно висеть и слушать. Как корректно это сделать.
|
|||
---|---|---|---|
#18+
vlsaf, Как я понимаю, провайдер реализует Pub/Sub pattern? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2015, 15:57 |
|
Нужно висеть и слушать. Как корректно это сделать.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2015, 16:01 |
|
Нужно висеть и слушать. Как корректно это сделать.
|
|||
---|---|---|---|
#18+
vlsafЗапроса к серверу не будет. Будет только подписка на события типа такого: _communicationClient.OnSystemMessageReceived += OnSystemMessageReceived; _communicationClient сторонняя библиотека (черный ящик). Я его инициализирую и только. Потом подписываюсь на события и жду когда они придут, чтобы обработать. Таймер тут курит в сторонке. А в чем проблема? Ну подписался, и что? Программа выпадает? события не приходят? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2015, 16:10 |
|
Нужно висеть и слушать. Как корректно это сделать.
|
|||
---|---|---|---|
#18+
AxeleronКак я понимаю, провайдер реализует Pub/Sub pattern?Да хрен его знает, какой он там паттерн реализован. Ну может и и Pub/Sub, а может и другой. Какая разница? Черный ящик, он и в африке черный. Короче подписываюсь на событие и делаю Console.ReadLine. Другого нечего не остается. А если в событии пришло сообщение типа заканчивай работать, то киляю родительский прцесс. Только одно гложет, а асли кто-то нечаянно Enter нажмет?! Конец программе ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2015, 16:20 |
|
Нужно висеть и слушать. Как корректно это сделать.
|
|||
---|---|---|---|
#18+
vlsafДа хрен его знает, какой он там паттерн реализован. Ну может и и Pub/Sub, а может и другой. Какая разница? Черный ящик, он и в африке черный. Короче подписываюсь на событие и делаю Console.ReadLine. Другого нечего не остается. А если в событии пришло сообщение типа заканчивай работать, то киляю родительский прцесс. Раз знаете на что подписываться, значит это и есть Pub(lish)/Sub(scribe) pattern. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2015, 16:25 |
|
Нужно висеть и слушать. Как корректно это сделать.
|
|||
---|---|---|---|
#18+
vlsaf, Дал же ссылку:) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2015, 18:24 |
|
Нужно висеть и слушать. Как корректно это сделать.
|
|||
---|---|---|---|
#18+
ЕвгенийВ, Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2015, 20:50 |
|
Нужно висеть и слушать. Как корректно это сделать.
|
|||
---|---|---|---|
#18+
vlsafЗапроса к серверу не будет. Будет только подписка на события типа такого: _communicationClient.OnSystemMessageReceived += OnSystemMessageReceived; _communicationClient сторонняя библиотека (черный ящик). Я его инициализирую и только. Потом подписываюсь на события и жду когда они придут, чтобы обработать. Таймер тут курит в сторонке.Таймер может жить внутри _communicationClient. Но прям если так хочется, то можно попробовать вставить в _communicationClient WCF+MSMQ. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2015, 04:48 |
|
Нужно висеть и слушать. Как корректно это сделать.
|
|||
---|---|---|---|
#18+
vlsafЕсли вопрос в целом по архитектуре клиента, то, как сказали выше, главный поток приложения управляется с помощью AutoResetEvent. Всё остальное работает через System.Threading.Timer и I/O Completion Ports , на которых базируются асинхронные операции, например, сокетов. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2015, 05:09 |
|
|
start [/forum/topic.php?fid=20&fpage=86&tid=1401604]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
14ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 377ms |
total: | 505ms |
0 / 0 |