如何通过c#订阅活动

时间:2014-03-18 05:54:27

标签: c# events console-application dataprovider subscribe

美好的一天!

我想在控制台应用上订阅活动。 例如,我有一些数据提供者获取事件OnDataChanged - 来自数据库的新数据进入。

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

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()?

谢谢!

1 个答案:

答案 0 :(得分:2)

你必须继续无限奔跑。在此之前抓住处理程序。

试试这个:

dataProvider.OnDataChanged+=myevent_OnDataChanged;
while (true)
{
    input = Console.ReadKey(true);

    if ConsoleKeyInfo(input.Key == ConsoleKey.C && (input.Modifiers & ConsoleModifiers.Control) == ConsoleModifiers.Control)
    {
        break;
    }
}