这是测试代码:
#include <iostream>
#include <vector>
#include <ppl.h>
using namespace std;
int main() {
const size_t n = 1000000;
vector<bool> processed(n, false);
concurrency::parallel_for<size_t>(0, processed.size(), [&](size_t i) {
processed[i] = true;
});
for (size_t i = 0; i < processed.size(); ++i) {
if (!processed[i]) {
cerr << "i = " << i << endl;
}
}
return 0;
}
在VS2015版本14.0.25431.01更新3中进行编译,有时会得到一些索引的输出。对于Win32和x64,在调试模式下(仅在Release中)看不到它。每次我运行它时索引都是不同的,因此看起来parallel_for不会处理某些并行循环迭代。有人可以在这里看到我在做什么吗?