Канонический подход с контейнерами, которые не поддерживают случайные итераторы, заключается в использовании явных задач OpenMP:
std::unordered_map<size_t, double> hastTable;
#pragma omp parallel
{
#pragma omp single
{
for(auto it = hastTable.begin(); it != hastTable.end(); it++) {
#pragma omp task
{
//do something
}
}
}
}
Это создает отдельную задачу для каждой итерации, которая приносит некоторые накладные расходы и поэтому имеет смысл только тогда, когда //do something
на самом деле означает //do quite a bit of work
.
Нет. Атрибут FromService может применяться только к методу действия контроллера.
Однако вы можете ввести IValidator в конструктор "class.cs", сохраните его как закрытый член, а затем используйте его в методе DoSomething.