如何通过c#订阅事件

本文关键字:事件 何通过 | 更新日期: 2023-09-27 17:50:47

大家好!

我想在控制台应用程序上订阅事件。例如,我有一些数据提供程序获取事件ondatachchanged -当新的数据从数据库进来。

所以,我的程序是这样的:

public static void Main()
{
dataProvider.OnDataChanged+=myevent_OnDataChanged;
}
static void myevent_OnDataChanged(object sender, DataChangeEventArgs e)
{
 Console.WriteLine("my event!");
}

所以,如果它是一个WinForm应用程序-我知道比用户应该点击按钮,我的事件将被改变。

但是如何在主机应用中订阅和获取事件呢?我应该写:

 public static void Main()
{
while(true)
    {
     dataProvider.OnDataChanged+=myevent_OnDataChanged;
    }
}

或Console.ReadLine () ?

谢谢!

如何通过c#订阅事件

您必须无限地运行。只需钩住之前的处理程序。

试试这个:

dataProvider.OnDataChanged+=myevent_OnDataChanged;
while (true)
{
    input = Console.ReadKey(true);
    if ConsoleKeyInfo(input.Key == ConsoleKey.C && (input.Modifiers & ConsoleModifiers.Control) == ConsoleModifiers.Control)
    {
        break;
    }
}