我试图学习如何使用parallel_for循环来完成简单的任务。我正在尝试使用以下代码:
Concurrency::parallel_for(int(0), 50, [&](int i)
{
try
{
printf("%d,", i);
}
catch (exception e)
{
printf("error\n");
}
});
现在,如果我将它放在main中,它可以正常工作,并打印出我所期望的正确值。但是,如果我将它放在.lib中我链接,它编译,但我收到以下错误:
" main.exe中0x00007FFA8541A020(ntdll.dll)的未处理异常:RangeChecks检测代码检测到超出范围的数组访问。"
所以我的问题:
1)为什么这会直接在main方法中工作,而不是在我的.lib中?如果我缺少标题,我觉得它不会编译 - 我该如何解决这个问题呢?
2)没有任何谷歌搜索引导我找到这个错误究竟意味着什么以及我如何解决它的解决方案。更令人困惑的是,所有50个有效数字在失败前打印。有人遇到过这个问题吗?
感谢您的洞察力 - 我一直在寻找自己!