在另一个类中创建一个线程

时间:2013-01-17 02:18:00

标签: c++ multithreading concurrency

我正在尝试在ThreadMe类中名为thefunction()的函数的main函数中创建一个线程。棘手的部分是我需要在另一个类TYIA -Roland

中启动一个线程
#include <iostream>
#include <process.h>
#include <windows.h>

int main()  {

    char cincatcher[24];

        std::cout << "I want to run a thread using a function on another class\n";

//      Here is a good place to start the thread

        while( true )   {


        std::cin >> cincatcher
    }
}


class ThreadMe  {

    void thefunction();
};

void ThreadMe::thefunction()    {

    while( true )   {

        std::cout << "working!\n"
        Sleep(800);
    }
}

1 个答案:

答案 0 :(得分:1)

您无法使用类方法直接启动线程。您必须将类方法包装到普通函数中,然后使用该函数启动线程。如下所示:

void threadBody(void *p) {
     ThreadME tm;
     tm.thefunction();
}