在via TBB库中创建一个线程

时间:2012-10-11 09:46:30

标签: c++ multithreading visual-studio-2008 tbb

我有这样的代码:

    #include <iostream>
    #include <tbb/tbb.h>
    #include <Windows.h>



    bool MyThread(int something)
    {
        std::cout << "This is a thread function\n" << std::endl;

        for (int i = 0; i < 10000; i++)
        {
            something++;
            Sleep(1);
        }

        return true;
    }

    int main ()
    {
        tbb::tbb_thread pMyThread = tbb::tbb_thread(MyThread, 3);

        pMyThread.join();

        return 0;
    }

但如果我在VS 2008中编译它会显示:         错误C2248:'tbb :: internal :: tbb_thread_v3 :: tbb_thread_v3':无法访问类'tbb :: internal :: tbb_thread_v3'中声明的私有成员

为main()函数的第一个字符串。我哪里错了?

1 个答案:

答案 0 :(得分:3)

这很可能在不应该调用复制构造函数时,请尝试这样做:

tbb::tbb_thread myThread(MyThread, 3); 

如果你能够,你还应该考虑使用标题

中的std :: thread