このC#コードをEXEファイルにコンパイルしてWindowsのコマンドシェルで実行すると、プロンプトが出力されます。ユーザー入力のために同じ行で入力してから入力をエコーします。 PowerShell v3シェルで実行すると、うまく動作します。ただし、PowerShell ISE V3で同じEXEファイルを実行すると、Write
から出力されることはなく、ReadLine
でハングアップします。 (それは後でWriteLine
が続いている場合はさておきとして、それはWrite
からの出力が出力されます。)PowerShell ISEがこのC#プログラムでハングするのはなぜですか?
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
System.Console.Write("invisible prompt: ");
var s = System.Console.ReadLine();
System.Console.WriteLine("echo " + s);
}
}
}
が、これはISEのバグですか、それを動作させるために調整するために、いくつかのプロパティがありますか...?
Powershellでは関連性があるかどうかわかりませんが、特定の問題を実装できる* Keyboard Polling *と呼ばれることがあります。だからおそらく 'Console.ReadLine()'がそのポーリングを使ってPowershellによって呼び出されると、おそらく競合の原因となるかもしれません。 – Greg