无法在Task.FromAsync方法中从组中选择方法

时间:2013-07-05 06:59:18

标签: c# .net asynchronous task-parallel-library

我有以下功能

public static Task<int> SendTaskAsync(this Socket socket, byte[] buffer, int offset, int size, SocketFlags flags)
{
    AsyncCallback nullOp = (i) => { };
    IAsyncResult result = socket.BeginSend(buffer, offset, size, flags, nullOp, socket);
    // Use overload that takes an IAsyncResult directly
    return Task.Factory.FromAsync(result, socket.EndSend);
}

但是我得到了

  

“无法从群组中选择方法”

FromAsync上的

错误。我的代码应该如何?我是TAP的新手

1 个答案:

答案 0 :(得分:3)

改变这个:

 return Task.Factory.FromAsync(result, socket.EndSend);

进入这个:

 return  Task<int>.Factory.FromAsync(result, socket.EndSend);

编辑:

正如@cremor所说,您也可以使用:

 return Task.Factory.FromAsync<int>(result, socket.EndSend);