代码之家  ›  专栏  ›  技术社区  ›  RiddlerDev

vb.net是否可以监视跨应用程序的引发事件?

  •  1
  • RiddlerDev  · 技术社区  · 16 年前

    我可能疯了…但我希望有办法做到这一点。

    我有一个包含事件处理的基类。我的控制台应用程序正在运行我的工作流。该工作流的一部分是在单独的线程中以特定的间隔引发事件,以广播工作人员的当前状态(我听到过许多人调用它的心跳)。

    我还有另一个程序在同一个解决方案中,它是一个Windows窗体,我希望它能够监听控制台应用程序中发生的事情,以便它能够显示工作状态。我尝试同时运行这两个事件,并验证了事件是否正在触发,但监视器找不到任何引发的事件。

    我担心没有办法做到这一点,我需要去数据库日志记录方法或其他什么方法…但如果有人知道如何使用事件(或事件样式)逻辑在应用程序之间进行通信,我会非常感激。

    当前应用程序从同一位置运行。目标是监视器应用程序最终将为我们的网络连接一个广播器,这样我们的工作站就可以在不登录机器的情况下监视某些工作状态,而主监视器将向我们显示所有工作人员的完整状态。

    请告诉我,如果我需要扩大/澄清这个问题,让一个2岁的孩子在我打字的时候看《星球大战》,这样我可能会错过一些东西。

    1 回复  |  直到 16 年前
        1
  •  2
  •   Mitch Wheat    16 年前

    有几种方法:使用远程处理、自定义Windows消息和命名管道。一种方法是 How to use named pipes for interprocess communication in Visual Basic .NET or in Visual Basic 2005

    以下是远程处理示例: Simple Inter-Process Communication In VB.Net

    下面是自定义Windows消息的示例: VB.NET, VB6 and C# Interprocess communication via Window Messaging

    也许最“最新”的方法是使用WCF回调通道: Using Callback Contracts in WCF for Asynchronous Publish/Subscribe Event-Style Communication