我很努力地掌握c#異步等待的基本概念。運行異步Foreach循環C#異步等待
基本上我有一個需要處理的對象列表,處理過程涉及迭代其屬性並加入字符串,然後創建一個新對象(在本例中稱爲trellocard),並最終添加一個trellocards。
迭代需要很長時間,所以我想要做的是異步處理多個對象。
我試過多種方法,但基本上我想要做這樣的事情。 (在下面的例子中,我已經刪除了處理,只是把system.threading.thread.sleep(200)。Im等待這不是一個異步方法,我可以使用tasks.delay,但重點是我的處理不有任何異步方法,我想只是多個實例運行整個方法。
private async Task<List<TrelloCard>> ProcessJobs(IQueryable<IGrouping<CardGrouping, Job>> jobs)
{
List<TrelloCard> cards = new List<TrelloCard>();
foreach (var job in jobs.ToList())
{
card = await ProcessCards(job, cards); // I would like to run multiple instances of the processing
cards.add(card); //Once each instance is finshed it adds it to the list
}
private async Task<TrelloCard> ProcessCards(Job job)
{
System.Threading.Thread.Sleep(2000); //Just for examples sake
return new TrelloCard();
}
謝謝!它令人驚歎,我一直在尋找網絡,你的第一個3行給了我燈泡的時刻。現在對我來說更有意義。 – michael
歡迎,對於一個web場景,他們就像一個Ajax調用,具有一些細微的差異,這是.Net特定的 –
Down投票者護理解釋請 –