У меня есть DLL, который будет динамически загружен/выгружен из другого приложения. В DLL у меня есть потоковая точка, принадлежащая статическому объекту, который попытается присоединиться к всем потокам в Destructor. Я подозреваю, что последние недействительны темы, и они на самом деле не «закончены». Есть идеи, почему это происходит и в конечном итоге, как его решить, кроме того, что вы вызов метода выгрузки до фрилибрика ?class ThreadPool
{
public:
ThreadPool(size_t nthreads)
{
for (size_t i = 0; i < nthreads; ++i)
{
m_threads.emplace_back(
std::thread(
[this]() {
while (!m_stop.load())
{
std::this_thread::sleep_for(std::chrono::milliseconds(3));
}
bool is = true;
}
)
);
}
}
~ThreadPool()
{
m_stop.store(true);
std::this_thread::sleep_for(std::chrono::seconds(3));
for (std::thread& thread : m_threads)
{
if (thread.joinable())
{
thread.join();
}
}
bool is = true;
}
private:
std::atomic_bool m_stop{ false };
std::vector m_threads;
};
Подробнее здесь: https://stackoverflow.com/questions/795 ... reelibrary