我有一個這樣的方法。異步問題,當改變的方法來使用收集
於是我決定改變這一個一點點:
public async Task<IEnumerable<Model>> Get([FromUri]IList<string> links)
{
IList<Model> list = new List<Model>();
foreach (var link in links)
{
MyRequestAsync request = new MyRequestAsync(link);
list.Add(await request.GetResult());
}
return list;
}
,現在我有一個問題,由於某種原因,它只是沒有返回結果。爲了我的理解,我陷入了僵局。
你知道如何解決這個問題嗎?使用異步
IList<Model> list = new List<Model>();
到
ConcurrentBag<Model> list = new ConcurrentBag<Model>();
很多時候,等待可能會比較混亂(對我來說,至少),並且將產生的結果我不能確定的:
可能重複[是否有可能爲 「等待收益率的回報DoSomethingAsync()」(http://stackoverflow.com/questions/5061761/is-it-possible-to-await-yield-return- dosomethingasync) – Fals
@Fals,似乎沒有關係。他沒有使用收益。 –
如果您發佈了一個小而完整的示例來重現問題,我們將能夠更好地爲您提供幫助。 –