所以我一直在使用C#一天。我正在編寫的第一個應用程序是一個簡單的基於控制檯的IRC客戶端,然而,我認爲它更難。由於我從兩個流讀取:控制檯& irc-server我需要某種非阻塞I/O。網絡阻塞到非阻塞,只有線程作爲選項?
此刻,我已經得到了下面的代碼:
while (((sInput = sr.ReadLine()) != null) || ((uuInput = Console.ReadLine()) != null))
{
// stuff
}
然而,這會一直執行sInput,因爲.ReadLine()是阻塞等最終在年底返回True,從而第二塊的OR將永遠不會被執行。
這是什麼解決方案?用線程自己實現它?我似乎無法在標準C#庫中找到任何NIO庫。我更喜歡有一個小而乾淨的解決方案,因爲我不想過分複雜這個程序。
任何幫助將是非常好的。謝謝。
只是FYI:你想要尋找的是與異步調用處理IO;你不想要非阻塞套接字。 – 2012-04-08 10:54:55