Also ich benutze C# jetzt für einen Tag. Die erste Anwendung, die ich schreibe, ist ein einfacher Konsolen-basierter IRC-Client, aber es ist schwieriger, als ich dachte. Da ich von zwei Streams lesen: Konsole & IRC-Server Ich brauche eine Art von nicht blockierenden E/A.Netzwerkblockierung auf nicht blockierend, nur Threads als Option?
Im Moment habe ich den folgenden Code haben:
while (((sInput = sr.ReadLine()) != null) || ((uuInput = Console.ReadLine()) != null))
{
// stuff
}
Dies wird jedoch immer sInput halten, weil .ReadLine() ist blockiert und so schließlich True zurück, am Ende, so dass der zweite Block der OR wird nie ausgeführt werden.
Was ist die Lösung dafür? Implementiere ich es selbst mit Threads? Ich kann anscheinend keine NIO-Bibliothek in der Standard-C# -Bibliothek finden. Ich bevorzuge eine kleine, saubere Lösung, weil ich dieses Programm nicht zu kompliziert machen möchte.
Jede Hilfe wäre sehr nett. Vielen Dank.
Nur zur Info: Was Sie suchen, ist die Verarbeitung von IO mit asynchronen Aufrufen; Sie möchten keine nicht blockierenden Sockets. –