Можно ли на vb.net отслеживать повышение событий между приложениями?

Возможно, я сошел с ума... но я надеюсь, что есть способ сделать это.

У меня есть базовый класс, в котором есть обработка событий. Мое консольное приложение выполняет мой рабочий процесс. Часть этого рабочего процесса состоит в том, чтобы вызывать события через определенные промежутки времени в отдельном потоке, чтобы транслировать текущее состояние рабочих (сердцебиение, которое я слышал, многие называют это).

У меня также есть другая программа в том же решении, которая является формой Windows, и я хочу, чтобы она могла слушать то, что происходит в консольном приложении, чтобы оно могло отображать рабочие состояния. Я попытался запустить оба одновременно и убедился, что события запускаются, но монитор не обнаружил ни одного из вызванных событий.

Я боюсь, что нет никакого способа сделать это, и мне нужно будет перейти к методу ведения журнала базы данных или что-то еще... но случайно, кто-то знал, как общаться между приложениями с помощью логики событий (или стиль события), Буду премного благодарен.

В настоящее время приложения работают из одного места. Цель состоит в том, чтобы приложение монитора в конечном итоге было подключено к нашей сети, чтобы наши рабочие станции могли отслеживать определенные рабочие состояния без входа в систему, а основной монитор отображал полный статус всех рабочих.

Пожалуйста, дайте мне знать, если мне нужно расширить / уточнить это, попросите двухлетнего ребенка смотреть "Звездные войны", пока я набираю текст, чтобы я что-то пропустил.

1 ответ

Решение

Есть несколько способов: использование удаленного взаимодействия, пользовательских сообщений Windows и именованных каналов. Один из способов - Как использовать именованные каналы для межпроцессного взаимодействия в Visual Basic .NET или Visual Basic 2005

Вот пример удаленного взаимодействия: Простое межпроцессное взаимодействие в VB.Net

Вот пример пользовательских сообщений Windows: VB.NET, VB6 и C# Межпроцессное взаимодействие через Window Messaging

Возможно, самый "современный" способ - это использовать каналы обратного вызова WCF: использование контрактов обратного вызова в WCF для асинхронной публикации в стиле события "публикация / подписка"

Другие вопросы по тегам