所以我已经使用 C# 一天了。我正在编写的第一个应用程序是一个简单的基于控制台的 IRC-Client,但它比我想象的要难。由于我从两个流中读取:控制台和 irc-server 我需要某种非阻塞 I/O。
目前我有以下代码:
while (((sInput = sr.ReadLine()) != null) || ((uuInput = Console.ReadLine()) != null))
{
// stuff
}
但是,这将始终执行 sInput,因为 .ReadLine() 是阻塞的,因此最终会在最后返回 True,因此 OR 的第二个块永远不会被执行。
解决方案是什么?用线程自己实现它?我似乎在标准 C# 库中找不到任何 NIO 库。我更喜欢有一个小而干净的解决方案,因为我不想让这个程序过于复杂。
任何帮助都会非常好。谢谢。