3

コンソール アプリケーションを使用するConsole.ReadLine()と、アプリケーションに「Hello World」と表示されConsole.ReadKey()ます。

static void Main(string[] args)
{
     System.Timers.Timer timer = new System.Timers.Timer(1000);
     timer.Elapsed += timer_Elapsed;
     timer.Enabled = true;

     Console.ReadKey();// When use ReadLine() work fine;
}

static void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
     Console.WriteLine("Hello World");
}

修正済み: http://support.microsoft.com/kb/2805221

4

3 に答える 3

2

Console.ReadKey .NET 4.5 の変更により、システムがデッドロックする可能性があります

Console.ReadKey は、初めて stderr にアクセスしようとしたときにロックされる同期オブジェクトをロックするようになりました。したがって、解決策は簡単です。Console.ReadKey を呼び出す前に、Console.Error を初期化する必要があります。

更新: Windows 7 SP1、Windows Server 2008 R2 SP1、Windows Server 2008 SP2、および Windows Vista SP2 の .NET Framework 4.5 用の更新プログラムを利用できます: 2013 年 5 月

于 2013-08-21T17:53:06.367 に答える