7

私は非常に単純なコンソールアプリを持っています。

static void Main(string[] args)
{
    DoAsync();
    Console.ReadKey();
}

ここでDoAsyncは一連のタスクを開始し、タスクの完了を待たずに戻ります。各タスクはコンソールに書き込みますが、キーを押す前に出力は表示されません。
私が使用すると、Console.ReadLineすべて正常に動作します。

だから私は特異性に興味がReadKey()あります。

4

1 に答える 1

10

ドキュメントからConsole.ReadKey()

ReadKey メソッドは、文字キーまたはファンクション キーが押されるまで待機します。つまり、ReadKey メソッドを発行するスレッドでブロックします。

実際に行うことは、ロックを取得することConsole.InternalSyncObjectです。これにより、コンソールでのそれ以上の操作ができなくなります。

メソッドは、このConsole.ReadLine()方法でスレッドをブロックしません。

この記事を読んで、 .NET 4.5 がインストールされていると思いますか?

于 2013-04-01T13:01:41.417 に答える