public Task<UdpReceiveResult> ReceiveAsync()
{
return Task<UdpReceiveResult>.Factory.FromAsync(
(callback, state) => ((UdpClient)state).BeginReceive(callback, state),
asyncResult =>
{
var client = (UdpClient)asyncResult.AsyncState;
IPEndPoint remoteEP = null;
byte[] buffer = client.EndReceive(asyncResult, ref remoteEP);
return new UdpReceiveResult(buffer, remoteEP);
},
state: this);
}