В настоящее время я программирую клиентское приложение, и мне интересно, должен ли я использовать метод Socket класса 'ReceiveAsync или BeginReceive.До сих пор я использовал последний, однако обнаружил, что он, похоже, сильно нагружает процессор.Вот как выглядит мой цикл приема:
private void socket_ReceiveCallback(IAsyncResult result_)
{
// does nothing else at the moment
socket.EndReceive(result_);
byte[] buffer = (byte[])result_.AsyncState;
// receive new packet
byte[] newBuffer = new byte[1024];
socket.BeginReceive(newBuffer, 0, newBuffer.Length, SocketFlags.None,
socket_ReceiveFallback, newBuffer);
}
Теперь мне стало интересно, не делаю ли я здесь что-то не так, поскольку другие приложения, которые обмениваются данными, почти не нагружают процессор.А также мне интересно, было бы мне лучше использовать SocketAsyncEventArgs и ReceiveAsync.
Итак, вот мои вопросы:
Почему мой цикл так сильно нагружает процессор?Должен ли я использовать SocketAsyncEventArgs и ReceiveAsync вместо BeginReceive?