【发布时间】:2014-11-29 15:19:21
【问题描述】:
我编写了方法,该方法将来自许多来源的元素添加到列表中。见下文:
public static async Task<List<SearchingItem>> GetItemsToSelect()
{
List<SearchingItem> searchingItems = new List<SearchingItem>();
foreach (Place place in await GetPlaces())
{
searchingItems.Add(new SearchingItem() {
IdFromRealModel=place.Id, NameToDisplay=place.FullName,
ExtraInformation=place.Name, TypeOfSearchingItem=TypeOfSearchingItem.PLACE });
}
foreach (Group group in await GetGroups())
{
searchingItems.Add(new SearchingItem()
{
IdFromRealModel = group.Id, NameToDisplay = group.Name,
ExtraInformation = group.TypeName, TypeOfSearchingItem = TypeOfSearchingItem.GROUP
});
}
return searchingItems;
}
我测试了这个方法并且工作正常。我想它可以正常工作,因为 GetPlaces 方法返回 160 个元素,而 GetGroups 返回 3000。但是,我想知道如果这些方法同时返回元素,它是否会起作用.我应该锁定列表 searchingItems 吗?
感谢您的建议。
【问题讨论】:
-
Should I lock list searchingItems, 否,因为在第一个循环完成之前不会执行第二个循环。
标签: c# asynchronous multitasking async-await