我有一個異步方法具有以下簽名:BeginXXX for FromAsync中的參數太多?
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);
,但我得到了以下錯誤:
Argument 1: cannot convert from 'method group' to 'System.Func'
似乎沒有合適的重載FromAsync方法http://msdn.microsoft.com/en-us/library/system.threading.tasks.taskfactory.fromasync.aspx,它只支持最多5個參數(包括回調和狀態) BeginXXX方法。
除了重構BeginXXX方法來獲取一個對象而不是六個參數之外,有沒有一種方法可以使用FromAsync來執行它?
有了這個重載,'FromAsync'沒有機會將回調傳遞給'BeginGetMyNumber'方法 - 您已經傳遞null。 相反,這個重載將在操作完成時使用'IAsyncResult.WaitHandle'來通知。這效率較低 - 有關詳細信息,請參閱http://blogs.msdn.com/b/pfxteam/archive/2012/02/06/10264610.aspx。 – Daniel
它適用於四個參數,但我有五個參數相同不適用於我的情況。我該怎麼辦 ? –