可能重複:
Difference between NetworkStream.Read() and NetworkStream.BeginRead()?何時處理TcpClients時使用異步?
與TcpClient類搞亂了一下,我注意到TcpClient.GetStream()類有兩種Read()
和BeginRead() and EndRead()
功能。
我應該使用哪些?我意識到Begin和End函數是異步函數,但我應該使用它們嗎?在什麼情況下我會使用Read與其異步對應?寫什麼?
目前,我只是在做這樣的事情:
byte[] message = new byte[4096];
int bytesRead = clientStream.Read(message, 0, 4096);
我應該使用的BeginRead和EndRead呢?
我明白你在說什麼。看起來Async總是更好,但實施起來更加困難,但一旦到位,它就是一個更好的系統。是? –
@KylePrice:我會毫不猶豫地說「永遠更好」。它的確更具可擴展性,但有阻止呼叫的合法場景(也請記住我給出了一個非常普遍的答案,因爲這個問題也非常普遍)。是的,它通常會更復雜一點。 – Jon
什麼是合法場景的例子?在不需要更新GUI的服務器上讀取少量數據? –