Se compilo questo codice C# in un file EXE ed eseguito in una shell dei comandi di Windows, funziona bene: emettendo il prompt, in attesa sulla stessa linea per qualche input utente seguito da enter, facendo eco a quell'input. Anche nell'esecuzione in una shell PowerShell v3 funziona egregiamente. Se, tuttavia, eseguo questo stesso file EXE in PowerShell ISE V3, non emette mai l'output da Write
e si blocca sullo ReadLine
. (Per inciso, si emetterà in uscita dal Write
se è poi seguita da una WriteLine
.)Perché PowerShell ISE si blocca su questo programma 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);
}
}
}
questo è un bug ISE o c'è qualche proprietà di regolare per farlo funzionare ...?
Non sono sicuro se sia rilevante, ma in PowerShell talvolta viene chiamato * Polling tastiera * che può implementare determinati problemi. Quindi forse quando viene chiamato 'Console.ReadLine()' a causa di PowerShell che usa quel polling può causare un conflitto. – Greg