我无法找到这个问题的答案。请帮忙。
方案
我可以使用 Task.WhenAll 一次等待多个任务。但我希望它在一个策略断路器execution
方法中。下面是代码片段。我正在调用 API 2 次,并希望一次获取调用结果。如果没有断路器,它就可以工作,我可以稍后在我的代码中使用结果。但我不明白如何使用Task.WhenAll
内部断路器调用 API。
var param1 = new Param
{
Category = Category.Manager,
FirstName = "John",
Address = "Sydney",
};
var param2 = new Param
{
Category = Category.Officer,
FirstName = "Adam",
Address = "Melbourne",
};
工作代码:
var results1 = Task.WhenAll(_apiClient.GetAsync(param1), _apiClient.GetAsync(param2));
//At this point results1 is NOT null and contains 2 items in it
问题:
var results2 = _policyCircuitBreaker.Execute(()=> Task.WhenAll(_apiClient.GetAsync(param1), _apiClient.GetAsync(param2)));
//at this point results2 is of type Task, how can I get the results2 similar to results1