Nếu tôi biên dịch mã C# này thành tệp EXE và chạy trong vỏ lệnh Windows, nó chạy tốt: xuất dấu nhắc, đợi trên cùng dòng cho một số người dùng nhập, sau đó nhập, lặp lại đầu vào đó. Chạy trong một vỏ PowerShell v3 nó cũng chạy tốt. Tuy nhiên, nếu tôi chạy cùng một tệp EXE này trong PowerShell ISE V3, nó sẽ không bao giờ phát ra đầu ra từ Write
và nó bị treo trên ReadLine
. (Là một sang một bên, nó sẽ phát ra đầu ra từ Write
nếu nó sau này được theo sau bởi một WriteLine
.)Tại sao PowerShell ISE lại sử dụng chương trình C# này?
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
System.Console.Write("invisible prompt: ");
var s = System.Console.ReadLine();
System.Console.WriteLine("echo " + s);
}
}
}
Đây có phải là một lỗi ISE hoặc là có một số tài sản để điều chỉnh để làm cho nó làm việc ...?
Không chắc chắn nếu nó có liên quan nhưng trong Powershell nó đôi khi được gọi là * Bàn phím Polling * mà có thể thực hiện một số vấn đề. Vì vậy, có thể khi 'Console.ReadLine()' được gọi là do Powershell sử dụng việc bỏ phiếu đó có thể gây ra xung đột. – Greg