var stdin = Console.OpenStandardInput();
char[] buffer = new char[20];
var length = 0;
var lengthBytes = new byte[4];
stdin.Read(lengthBytes, 0, 4);
length = BitConverter.ToInt32(lengthBytes, 0);
buffer = new char[length];
using (var reader = new StreamReader(stdin))
{
if (reader.Peek() >= 0)
{
reader.Read(buffer, 0, buffer.Length);
}
}
Oczywiście i Peek i Read są blikujące.
Jak to się robi w C# aby nie blokowało read?
W Delphi mozna było odczytać rozmiar strumienia i nie czytać jak nie było danych a jak tio się robi w C#?
stdin.Length nie działa.