如何通过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 () ?
谢谢!
您必须无限地运行。只需钩住之前的处理程序。
试试这个:
dataProvider.OnDataChanged+=myevent_OnDataChanged;
while (true)
{
input = Console.ReadKey(true);
if ConsoleKeyInfo(input.Key == ConsoleKey.C && (input.Modifiers & ConsoleModifiers.Control) == ConsoleModifiers.Control)
{
break;
}
}