我的DLL应用程序在调用时在导出的函数中创建一个新类。类构造函数创建一个新线程。在调用detach()之后,主线程不会继续,整个应用程序都会挂起。
在类构造函数中:
spawn().detach();
私人会员功能:
std::thread spawn() {
return std::thread([=] { WriteProcess(false); });
}
WriteProcess:
for (;; std::this_thread::sleep_for(std::chrono::milliseconds(LOG_THREAD_TICK_RATE)))
{
// does stuff
}
省略用于创建线程的lambda不能解决它。
使用CreateThread
此问题不会发生,WriteProcess
按预期工作。
我在Windows 8上使用VS2013 C ++ 11,而我目前无法调试加载我的dll的过程。