Я столкнулся с проблемой при получении сведений о сотруднике из API с помощью параллельного цикла foreach в C#.
Вот что я делаю:
< ul>
[*]У меня есть список номеров сотрудников.
[*]Я перебираю этот список, используя параллельный цикл foreach.
[*] Внутри цикла я вызываю API с текущим номером сотрудника, чтобы получить сведения о сотруднике.
[*]Я добавляю полученные данные о сотруднике в список.
Однако я заметил, что иногда объект сотрудника в списке сведений о сотруднике становится нулевым. Я не знаю, почему это происходит и как это решить.
public List GetEmployees(List empNumber)
{
List employeeList = new List();
try
{
List cb = new List();
var tasks = new ConcurrentBag();
Parallel.ForEach(empNumber, reference =>
{
tasks.Add(Task.Run(() =>
{
var importedEmployee = GetEmployeeDetails(reference.ToString());
if (importedEmployee != null)
{
lock (cb)
{
cb.Add(importedEmployee);
}
}
}));
});
Task.WaitAll(tasks.Where(t => t != null).ToArray());
employeeList.AddRange(cb.ToList());
}
catch (Exception ex)
{
Log.Error("Error");
}
return employeeList;
}
public ImportedEmployee GetEmployeeDetails(string empNum)
{
ImportedEmployee employeeDetails = new ImportedEmployee();
try
{
var responseString = ServiceRequest($"Employees/{empNum}", null, HttpVerbs.Get).ToString();
JObject result = JObject.Parse(responseString);
employeeDetails.FirstName = result["FirstName"].ToString();
employeeDetails.LastName = result["LastName"].ToString();
employeeDetails.Username = result["LoginId"].ToString();
}
catch (Exception ex)
{
Log.Error("Error retrieving employee details.", ex);
}
return employeeDetails;
}
Подробнее здесь: https://stackoverflow.com/questions/781 ... etching-da
Сведения о сотруднике становятся нулевыми в параллельном цикле ForEach C# при получении данных из API ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Почему мои свойства в моем блазоре всегда становятся нулевыми, когда я отправляю форму
Anonymous » » в форуме C# - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Почему мои свойства в моем блазоре всегда становятся нулевыми, когда я отправляю форму
Anonymous » » в форуме C# - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Атрибуты шаблона Freemarker становятся нулевыми! В индивидуальном якоре Struts2
Anonymous » » в форуме JAVA - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-