List<ContactGroup> contactGroups = new List<ContactGroup>();
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
contactGroups.AddRange(dbEnt.ClientContactGroups.Where(x => x.ClientID == ClientID && x.IsDeleted == false).Select(x => new ContactGroup { ClientID = x.ClientID, ClientContactGroupID = x.ClientContactGroupID, ContactGroupName = x.ContactGroupName }).ToList());
stopwatch.Stop();
if (!string.IsNullOrEmpty(SearchText))
{
contactGroups.Where(x => x.ContactGroupName.Contains(SearchText)).ToList();
}
List<SP_GroupContacts_Result> groupContacts_Results = new List<SP_GroupContacts_Result>();
stopwatch.Start();
Parallel.ForEach(contactGroups, groups =>
{
groups.Contacts = new List<Contact>();
groups.Contacts.AddRange((from cc in dbEnt.ClientContacts
join rt in dbEnt.ResponseTeamUserMappings on cc.ClientContactID equals rt.CMTMemberUserID
join cr in dbEnt.ClientRoles on rt.ClientRoleID equals cr.ClientRoleID
where cc.ClientContactGroupID == groups.ClientContactGroupID && cc.IsActive == true && cc.IsDeleted == false
select new Contact
{
ClientContactID= cc.ClientContactID,
FirstName = cc.FirstName,
LastName = cc.LastName,
ProfileImage = cc.ProfileImage,
RoleName = cr.ClientRoleName,
Email= cc.Email,
ContactNumber= cc.MobilePhone
}).ToList());
});
stopwatch.Stop();
Мне нужно выполнять эти процессы параллельно, но у меня нет никакой информации о параллельных процессах в c#. Я пробовал разные подходы, но не смог заставить его работать. Это происходит сбой в параллельной части. b__1 ()
Сообщение
Ссылка на объект не установлена для экземпляра объекта.