基于回调的异步方法,有多个参数到awaitabletask
本文关键字:参数 awaitabletask 异步方法 于回调 回调 | 更新日期: 2023-09-27 18:10:49
我有以下代码连接到MYOB的SDK
var cfsCloud = new CompanyFileService(_configurationCloud, null, _oAuthKeyService);
cfsCloud.GetRange(OnComplete, OnError);
,
private void OnComplete(HttpStatusCode statusCode, CompanyFile[] companyFiles)
{ // ask for credentials etc }
我想将其转换为使用TaskCompletionSource像下面这个例子
然而我的OnComplete有多个参数。我该怎么编码呢?
如评论
所述account API的SDK支持async/await,即GetRangeAsync
所以你可以这样做如果你想/需要在TaskCompletionSource
中包装它static Task<CompanyFile[]> DoWork()
{
var tcs = new TaskCompletionSource<CompanyFile[]>();
Task.Run(async () =>
{
var cfsCloud = new CompanyFileService(_configurationCloud, null, _oAuthKeyService);
var files = await cfsCloud.GetRangeAsync();
tcs.SetResult(files);
});
return tcs.Task;
}