控制台应用仅在 运行 来自 Visual Studio 时捕获事件

Console app capturing events only when run from Visual Studio

我目前正在测试第三方 API,其中一些事件是从远程服务器触发的,我试图用一个简单的 windows 控制台应用程序捕获这些事件。

我的场景 运行 只要我 运行 我的控制台应用程序按 F5 就可以顺利进行。事件会按应有的方式实时捕获和显示。

所以我尝试部署该应用程序并 运行 它是独立的。当然,现在 main() 一旦 运行 没有命令就终止程序执行。我已经尝试了在 How to keep a .NET console app running? or What is the best way to keep a C# Console app running.

等问题中找到的几种解决方案

使用无限循环,等待用户输入或waitone()关闭事件导致无法再捕获事件的阻塞状态。

所以我坦率地问,有没有办法 运行 我的控制台使用 Visual Studio 调试器模拟它 运行 的方式?

仅供参考,您可以在下面找到我的示例代码:

class Program
    {

        static void Main(string[] args)
        {
            Program program = new Program();

            //Login to third-part API service
            Net2 net2 = new Net2();
            net2.Login();

            //Monitor events from a devoce
            net2.client.MonitorAcu(1172079);
            Console.WriteLine("Monitoring ACU #1172079. Listening for events...");

            //Subscribe for events
            net2.client.Net2AccessEvent += new OemClient.Net2AcuEventHandler(program.Net2AccessEvent);

        }

        private void Net2AccessEvent(object sender, IEventView e)
        {
            Console.WriteLine("An event was captured!");
        }
    }

添加

Console.Read();

最后在 main 方法中。 在用户按下任意键之前,它不会允许关闭应用程序,它也不会阻止事件处理程序。