异步问题,当改变的方法来使用集合 [英] Async issue when changed method to use collection
本文介绍了异步问题,当改变的方法来使用集合的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个这样的方法:
public async Task<IEnumerable<Model>> Get(string link)
{
MyRequestAsync request = new MyRequestAsync(link);
return await request.GetResult();
}
据工作pretty很好。
It is working pretty well.
于是我决定改变这个一点:
Then I decided to change this one a little bit:
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;
}
,现在我有一个问题,由于某种原因,它只是没有返回结果。对于我的理解我收到了僵局。
And now I am got a problem, for some reason it is just not returning the result. For my understanding I am getting the deadlock.
你知道如何解决这个问题?
Do you know how to fix that?
推荐答案
添加ConfigureAwait(假)不要在UI线程死锁。
Add ConfigureAwait(false) to not deadlock on the UI Thread.
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().ConfigureAwait(false));
}
return list;
这篇关于异步问题,当改变的方法来使用集合的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文