我正在尝试在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