我正在为 Windows 编写一个简单的线程库。我想通过这个函子
struct callable
{
void operator()()
{
for(int i = 0; ;++i)
{
std::cout << i << std::endl;
}
}
};
这样_beginthread()
:
int main()
{
callable c;
_beginthread(c, 0, 0);
}
但这是不可能的。在线程中传递函子的能力对于我的库来说是非常必要的。我知道boost::thread
提供了这种能力,因此它是可能的。如何在不使用 C++11 线程的情况下使用仿函数作为线程函数在 Windows 中开始线程?
[更新] 不使用 C++11 线程