Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Нужно висеть и слушать. Как корректно это сделать. / 22 сообщений из 22, страница 1 из 1
28.04.2015, 11:28
    #38946977
vlsaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно висеть и слушать. Как корректно это сделать.
Есть некий провайдер, который генерит события. Я подписываюсь на получение событий и вот теперь должен слушать, что приходит. Как корректней это сделать? Я имею ввиду зависнуть и слушать.

P.S. Это консольное приложение. Пока сниматься будет при помощи закрытия окна. Потом сделаю, чтобы ловил команды винды.
...
Рейтинг: 0 / 0
28.04.2015, 11:59
    #38947027
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно висеть и слушать. Как корректно это сделать.
это конкурс на тему "угадай, кто генерит"?
...
Рейтинг: 0 / 0
28.04.2015, 12:10
    #38947046
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно висеть и слушать. Как корректно это сделать.
Antonariyэто конкурс на тему "угадай, кто генерит"?Какая разница? При отсутствии гарантии доставки пакетов по сети серверные события нужно отлавливать опросом с клиента по таймеру. Всё остальное от лукавого.
...
Рейтинг: 0 / 0
28.04.2015, 12:10
    #38947047
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно висеть и слушать. Как корректно это сделать.
Обработка и вызов событий

Antonariyэто конкурс на тему "угадай, кто генерит"?

Сказано же - провайдер :)
...
Рейтинг: 0 / 0
28.04.2015, 12:18
    #38947064
vlsaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно висеть и слушать. Как корректно это сделать.
Не, серьезно. Windows окно висит и проц не грузит. Нужно тоже самое сделать в консоли.

Пока вижу только один выход:
Код: c#
1.
2.
3.
using System.Windows.Forms;
...
Application.Run();
...
Рейтинг: 0 / 0
28.04.2015, 12:22
    #38947071
vlsaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно висеть и слушать. Как корректно это сделать.
Алексей КПри отсутствии гарантии доставки пакетов по сети серверные события нужно отлавливать опросом с клиента по таймеру.

По таймеру не хочу. Какой шаг брать в таймере. 1 час? 1 минута? 1 секунда. А вдруг события посыпятся, как из рога изобилия, а таймер будет бездельничать.
...
Рейтинг: 0 / 0
28.04.2015, 12:30
    #38947099
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно висеть и слушать. Как корректно это сделать.
vlsafНе, серьезно. Windows окно висит и проц не грузит. Нужно тоже самое сделать в консоли.


Console.ReadLine?
...
Рейтинг: 0 / 0
28.04.2015, 12:32
    #38947105
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно висеть и слушать. Как корректно это сделать.
vlsafАлексей КПри отсутствии гарантии доставки пакетов по сети серверные события нужно отлавливать опросом с клиента по таймеру.

По таймеру не хочу.Всё остальное найопка. Клиент сидит, событий нет. Событий действительно нет или технические проблемы - не понятно. В случае с таймером при технических проблемах будет возникать сообщение об ошибке.
vlsafКакой шаг брать в таймере. 1 час? 1 минута? 1 секунда.Сделай настройку, если не уверен.
vlsafА вдруг события посыпятся, как из рога изобилия, а таймер будет бездельничать.Не понял.
...
Рейтинг: 0 / 0
28.04.2015, 13:56
    #38947253
vlsaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно висеть и слушать. Как корректно это сделать.
Алексей КНе понял.Это я уже гоню ;)
...
Рейтинг: 0 / 0
28.04.2015, 13:58
    #38947254
vlsaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно висеть и слушать. Как корректно это сделать.
Алексей КВ случае с таймером при технических проблемах будет возникать сообщение об ошибке. Эээ... А без таймера не будут?
...
Рейтинг: 0 / 0
28.04.2015, 15:12
    #38947396
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно висеть и слушать. Как корректно это сделать.
vlsafЕсть некий провайдер, который генерит события. Я подписываюсь на получение событий и вот теперь должен слушать, что приходит. Как корректней это сделать? Я имею ввиду зависнуть и слушать.

P.S. Это консольное приложение. Пока сниматься будет при помощи закрытия окна. Потом сделаю, чтобы ловил команды винды.
Что за провайдер? Что за события?
...
Рейтинг: 0 / 0
28.04.2015, 15:23
    #38947414
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно висеть и слушать. Как корректно это сделать.
vlsafАлексей КВ случае с таймером при технических проблемах будет возникать сообщение об ошибке. Эээ... А без таймера не будут?Ну а как без запроса к серверу клиент определит "жив" ли сервер?
...
Рейтинг: 0 / 0
28.04.2015, 15:52
    #38947455
vlsaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно висеть и слушать. Как корректно это сделать.
Запроса к серверу не будет. Будет только подписка на события типа такого:
_communicationClient.OnSystemMessageReceived += OnSystemMessageReceived;

_communicationClient сторонняя библиотека (черный ящик).
Я его инициализирую и только. Потом подписываюсь на события и жду когда они придут, чтобы обработать. Таймер тут курит в сторонке.
...
Рейтинг: 0 / 0
28.04.2015, 15:57
    #38947461
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно висеть и слушать. Как корректно это сделать.
vlsaf,
Как я понимаю, провайдер реализует Pub/Sub pattern?
...
Рейтинг: 0 / 0
28.04.2015, 16:01
    #38947469
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно висеть и слушать. Как корректно это сделать.
...
Рейтинг: 0 / 0
28.04.2015, 16:10
    #38947486
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно висеть и слушать. Как корректно это сделать.
vlsafЗапроса к серверу не будет. Будет только подписка на события типа такого:
_communicationClient.OnSystemMessageReceived += OnSystemMessageReceived;

_communicationClient сторонняя библиотека (черный ящик).
Я его инициализирую и только. Потом подписываюсь на события и жду когда они придут, чтобы обработать. Таймер тут курит в сторонке.

А в чем проблема? Ну подписался, и что? Программа выпадает? события не приходят?
...
Рейтинг: 0 / 0
28.04.2015, 16:20
    #38947500
vlsaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно висеть и слушать. Как корректно это сделать.
AxeleronКак я понимаю, провайдер реализует Pub/Sub pattern?Да хрен его знает, какой он там паттерн реализован. Ну может и и Pub/Sub, а может и другой. Какая разница? Черный ящик, он и в африке черный.

Короче подписываюсь на событие и делаю Console.ReadLine. Другого нечего не остается. А если в событии пришло сообщение типа заканчивай работать, то киляю родительский прцесс.


Только одно гложет, а асли кто-то нечаянно Enter нажмет?! Конец программе ;)
...
Рейтинг: 0 / 0
28.04.2015, 16:25
    #38947510
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно висеть и слушать. Как корректно это сделать.
vlsafДа хрен его знает, какой он там паттерн реализован. Ну может и и Pub/Sub, а может и другой. Какая разница? Черный ящик, он и в африке черный.

Короче подписываюсь на событие и делаю Console.ReadLine. Другого нечего не остается. А если в событии пришло сообщение типа заканчивай работать, то киляю родительский прцесс.
Раз знаете на что подписываться, значит это и есть Pub(lish)/Sub(scribe) pattern.
...
Рейтинг: 0 / 0
28.04.2015, 18:24
    #38947724
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно висеть и слушать. Как корректно это сделать.
vlsaf,
Дал же ссылку:)
...
Рейтинг: 0 / 0
28.04.2015, 20:50
    #38947867
vlsaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно висеть и слушать. Как корректно это сделать.
ЕвгенийВ,
Спасибо!
...
Рейтинг: 0 / 0
29.04.2015, 04:48
    #38948054
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно висеть и слушать. Как корректно это сделать.
vlsafЗапроса к серверу не будет. Будет только подписка на события типа такого:
_communicationClient.OnSystemMessageReceived += OnSystemMessageReceived;

_communicationClient сторонняя библиотека (черный ящик).
Я его инициализирую и только. Потом подписываюсь на события и жду когда они придут, чтобы обработать. Таймер тут курит в сторонке.Таймер может жить внутри _communicationClient. Но прям если так хочется, то можно попробовать вставить в _communicationClient WCF+MSMQ.
...
Рейтинг: 0 / 0
29.04.2015, 05:09
    #38948055
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно висеть и слушать. Как корректно это сделать.
vlsafЕсли вопрос в целом по архитектуре клиента, то, как сказали выше, главный поток приложения управляется с помощью AutoResetEvent. Всё остальное работает через System.Threading.Timer и I/O Completion Ports , на которых базируются асинхронные операции, например, сокетов.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Нужно висеть и слушать. Как корректно это сделать. / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]