2

我正在尝试学习如何使用 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 个有效数字在失败之前都会打印出来。有没有人遇到过这个问题?

感谢您的洞察力-我会继续寻找自己!

4

0 回答 0