c ++线程向量 - 编译器错误

时间:2017-01-30 07:07:21

标签: c++ multithreading for-loop vector

我正在使用Visual Studio 2015,我正在学习多线程。

我试图通过函数中的输入创建一个线程向量。 当我刚创建一个线程向量时,一切都很好但是当我试图访问向量时,无法再编译。

错误:

C2661 'std::tuple<void(__cdecl *)(int,int,std::ofstream&),
      int,int,std::basic_ofstream<char,std::char_traits<char> > >::tuple':
      no overloaded function takes 4 arguments

代码:

std::vector<std::thread> t(N);
for (int i = 0; i < N; i++)
    t[i] = std::thread(writePrimesToFile, begins[i], ends[i], file);
for (int i = 0; i < N; i++)
    t[i].join();

线程函数签名:

void writePrimesToFile(int begin, int end, ofstream& file)

顺便说一下,函数本身在没有线程的情况下工作。

0 个答案:

没有答案