我有一个具有以下签名的异步方法:
IAsyncResult BeginGetMyNumber(string foo, string bar, string bat, int bam, AsyncCallback callback, object state)
我想像这样使用 Factory.FromAsync 执行它:
var result = Task<int>.Factory.FromAsync(
instance.BeginGetMyNumber,
instance.EndGetMyNumber,
"foo",
"bar",
"bat",
100, /*bam*/
null);
但我收到以下错误:
参数 1:无法从“方法组”转换为“System.Func”
似乎没有合适的重载 FromAsync 方法http://msdn.microsoft.com/en-us/library/system.threading.tasks.taskfactory.fromasync.aspx,它最多只支持5个参数(包括回调和状态)在 BeginXXX 方法上。
除了重构 BeginXXX 方法以获取一个对象而不是六个参数之外,还有没有办法使用 FromAsync 来执行它?