【问题标题】:vb.net possible to monitor raise events across applications?vb.net 可以跨应用程序监视引发事件吗?
【发布时间】:2009-10-01 00:17:01
【问题描述】:

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

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

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

我担心没有办法做到这一点,我需要使用数据库日志记录方法或其他方法......但如果有人知道如何在应用程序之间使用事件(或事件-风格)逻辑,我会很感激的。

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

如果我需要扩展/澄清这一点,请让我知道,让一个 2 岁的孩子在我打字的时候看《星球大战》,这样我可能会漏掉一些东西。

【问题讨论】:

    标签: vb.net delegates communication raiseevent cross-application


    【解决方案1】:

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

    这是一个远程示例:Simple Inter-Process Communication In VB.Net

    这里是自定义窗口消息的示例:VB.NET, VB6 and C# Interprocess communication via Window Messaging

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

    【讨论】:

    • 很棒的反应。谢谢!可能会使用前两个中的一个,但第三个看起来会解决我前一周被问到的一些问题。
    • 我目前使用的是 2.0 框架(我们将在更新其他服务器后立即迁移到 3.5)
    猜你喜欢
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    • 2022-07-10
    • 1970-01-01
    相关资源
    最近更新 更多