0

良い一日!

コンソール アプリでイベントを購読したい。たとえば、データベースからの新しいデータが入ったときにイベント 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()?

ありがとうございました!

4

1 に答える 1

2

無限に走り続けなければなりません。その前にハンドラをフックするだけです。

これを試して:

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

    if ConsoleKeyInfo(input.Key == ConsoleKey.C && (input.Modifiers & ConsoleModifiers.Control) == ConsoleModifiers.Control)
    {
        break;
    }
}
于 2014-03-18T06:07:35.667 に答える