Most socket Task-based async APIs are implemented using SocketAsyncEventArgs under the covers today. The few that are not include: SendToAsync ReceiveFromAsync ReceiveMessageFromAsync These are instead implemented by wrapping the old IAsyncResult-based async methods. We should change these to use SocketAsyncEventArgs instead.