Я пытаюсь научиться использовать цикл parallel_for для простых задач. Я пытаюсь использовать следующий код:
Concurrency::parallel_for(int(0), 50, [&](int i)
{
try
{
printf("%d,", i);
}
catch (exception e)
{
printf("error\n");
}
});
Теперь, если я поставлю его в основном, он работает нормально, и выводит то, что я ожидаю, соответственно. Однако, если я помещаю его в .lib, с которым я ссылаюсь, он компилируется, но я получаю следующую ошибку:
«Необработанное исключение в 0x00007FFA8541A020 (ntdll.dll) в main.exe: код инструментария RangeChecks обнаружил доступ к массиву вне диапазона.»
Итак, мои вопросы:
1) Почему это работает в основном методе напрямую, а не в моем .lib? Я чувствую, что это не скомпилировалось бы, если бы мне не хватало заголовков — как я могу это исправить?
2) Никакое количество Google не привело меня к решению о том, что именно означает эта ошибка и как я могу ее устранить. Еще более запутанным является тот факт, что все пятьдесят действительных чисел печатаются до отказа. Кто-нибудь сталкивался с этой проблемой?
Спасибо за понимание — я буду продолжать искать себя!
Задача ещё не решена.
Других решений пока нет …