Разрешить запуск ТОЛЬКО одного потокаC++

Программы на C++. Форум разработчиков
Гость
Разрешить запуск ТОЛЬКО одного потока

Сообщение Гость »


Как безопасно запустить только один WorkerThread?

Существует ли для этого шаблон проектирования?
На самом деле я делаю так, мне кажется немного слишком сложно.

Код: Выделить всё

void CLogView::OnStartStoplogger()
{
m_bLogPtRun = !m_bLogPtRun;    // (bool)
if (m_bLogPtRun)
{
// First check, if Thread is still running
if (!m_pLogPointThread)
{
m_pLogPointThread = AfxBeginThread(AddLogPointThread, this);
}
else
return;   // Thread still running
}
else
{
if (m_pLogPointThread )
{
if (m_pLogPointThread) {
DWORD dwRET = WaitForSingleObject(m_pLogPointThread->m_hThread, /*INFINITE*/ 5000);
if (dwRET != WAIT_OBJECT_0)
MessageBox(_T("Could not finished LogPointThread"));
}
}



Источник: https://stackoverflow.com/questions/751 ... one-thread

Вернуться в «C++»