我正在尝试在C++(Win32)中创建一个线程来运行一个简单的方法。我是C++线程的新手,但对C#中的线程非常熟悉。这是我要执行的操作的伪代码:

static void MyMethod(int data)
{
    RunStuff(data);
}

void RunStuff(int data)
{
    //long running operation here
}

我想从MyMethod调用RunStuff而不会阻塞。在单独的线程上运行RunStuff的最简单方法是什么?

编辑:我还应该提到我想将依赖关系降至最低。 (没有MFC ...等)

最佳答案

#include <boost/thread.hpp>

static boost::thread runStuffThread;

static void MyMethod(int data)
{
    runStuffThread = boost::thread(boost::bind(RunStuff, data));
}

// elsewhere...
runStuffThread.join(); //blocks

07-24 09:45
查看更多