スタート次のコードを使用して新しいコンソールアプリケーション -なぜConsole.In.ReadLineAsyncはブロックされますか?
class Program
{
static void Main(string[] args)
{
while (true)
{
Task<string> readLineTask = Console.In.ReadLineAsync();
Debug.WriteLine("hi");
}
}
}
Console.In.ReadLineAsyncがブロックされ、ラインがコンソールに入力されるまでは戻らない...そう、「こんにちは」に書き込まれることは決してありませんコンソール。
Console.In.ReadLineAsyncブロックも待機しています。
新しいAsync CTPメソッドがブロックされないことは私の理解であった。
この理由は何ですか?ここで
は別の例
static void Main(string[] args)
{
Task delayTask = Task.Delay(50000);
Debug.WriteLine("hi");
}
ですこれは私が期待するようTask.Delayがブロックしていないので、それは次の行と版画「HI」に直進動作します。
ここではバグが報告されています。https://connect.microsoft.com/VisualStudio/feedback/details/779079/console-readlineasync-is-actually-blocking-when-it-should-be-returning-a-task - 直ちに – NoPyGod