我有一个DLL,在加载时需要生成一个新线程。我目前的做法是这样的:
struct Dummy {Dummy() {} };
Dummy obj;
Dummy::Dummy()
{
std::thread t([]() {std::cout<<"Helloworld\n"; });
assert( t.joinable() );
t.join();
}
不幸的是,此代码永远挂在t.join()
行,并且它不会打印任何内容。主应用程序使用LoadLibrary
加载dll。
我正在使用Mingw的gcc 4.8。