Разрешить запуск ТОЛЬКО одного потока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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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