Когда я закрываю поток, созданный плагином dll, вся программа закрывается - PullRequest
0 голосов
/ 10 июля 2020

Мне нужен таймер потока для плагина. Код выполняется хорошо. Проблема в том, что при закрытии плагин должен закрыть созданный поток.

Когда поток закрывается, закрывается вся программа. Как я могу закрыть безопасный плагин, не закрывая всю родительскую программу.

class MYCLASS {
public:
.............
    static DWORD WINAPI threadProc(LPVOID innerThread) {
        MYCLASS *pThis = reinterpret_cast<MYCLASS*>(innerThread);
            
            if (pThis->process_on) {
                // EXECUTE         
      }

            Sleep(100);
        }
        exit(0); 
    }
  MYCLASS::OnClose();

.............

private:  
    bool process_on;

    HANDLE hThread; DWORD ThreadID;
  
.............

hThread=CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)threadProc, (void*)this, 0, &ThreadID);
..............


void MYCLASS::OnClose() {
    thread_process=false;   
    DWORD dwExitCode;
    GetExitCodeThread(hThread, &dwExitCode);
    ExitThread(dwExitCode);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...