Можно ли на vb.net отслеживать повышение событий между приложениями?
Возможно, я сошел с ума... но я надеюсь, что есть способ сделать это.
У меня есть базовый класс, в котором есть обработка событий. Мое консольное приложение выполняет мой рабочий процесс. Часть этого рабочего процесса состоит в том, чтобы вызывать события через определенные промежутки времени в отдельном потоке, чтобы транслировать текущее состояние рабочих (сердцебиение, которое я слышал, многие называют это).
У меня также есть другая программа в том же решении, которая является формой Windows, и я хочу, чтобы она могла слушать то, что происходит в консольном приложении, чтобы оно могло отображать рабочие состояния. Я попытался запустить оба одновременно и убедился, что события запускаются, но монитор не обнаружил ни одного из вызванных событий.
Я боюсь, что нет никакого способа сделать это, и мне нужно будет перейти к методу ведения журнала базы данных или что-то еще... но случайно, кто-то знал, как общаться между приложениями с помощью логики событий (или стиль события), Буду премного благодарен.
В настоящее время приложения работают из одного места. Цель состоит в том, чтобы приложение монитора в конечном итоге было подключено к нашей сети, чтобы наши рабочие станции могли отслеживать определенные рабочие состояния без входа в систему, а основной монитор отображал полный статус всех рабочих.
Пожалуйста, дайте мне знать, если мне нужно расширить / уточнить это, попросите двухлетнего ребенка смотреть "Звездные войны", пока я набираю текст, чтобы я что-то пропустил.
1 ответ
Есть несколько способов: использование удаленного взаимодействия, пользовательских сообщений Windows и именованных каналов. Один из способов - Как использовать именованные каналы для межпроцессного взаимодействия в Visual Basic .NET или Visual Basic 2005
Вот пример удаленного взаимодействия: Простое межпроцессное взаимодействие в VB.Net
Вот пример пользовательских сообщений Windows: VB.NET, VB6 и C# Межпроцессное взаимодействие через Window Messaging
Возможно, самый "современный" способ - это использовать каналы обратного вызова WCF: использование контрактов обратного вызова в WCF для асинхронной публикации в стиле события "публикация / подписка"