Hola!
La verdad es que hace mucho que no toco Threads en C++, pero tengo la documentacion de un proyecto antiguo donde los use, a ver si te sirve de algo:
CThread.h
Código C++:
Ver originalclass CThread
{
private:
HANDLE thandle;
long thid;
public:
CThread();
~CThread();
int Start(unsigned int (__stdcall *func)(void *), void * params);
HANDLE CThread::GetHandle();
void Resume();
void Pause();
void Stop();
};
CThread.cpp
Código C++:
Ver original#include "CThread.h"
CThread::CThread(){
this->thid = NULL;
}
int CThread::Start(unsigned int (__stdcall * func)(void *), void * params)
{
this->thandle = (HANDLE) _beginthreadex(NULL, 0, func, params, CREATE_SUSPENDED, &this->thid);
if(!this->thandle)
{
return NULL;
}
return 1;
}
HANDLE CThread::GetHandle(){ return this->thandle; }
void CThread::Resume(){ ResumeThread(this->thandle); }
void CThread::Pause(){ SuspendThread(this->thandle); }
void CThread::Stop(){ _endthreadex(this->thid); }
CThread::~CThread(){ this->Stop(); CloseHandle((void*)this->thid); }
Y tal y como lo uso mas adelante es mas o menos de la siguiente forma:
Código C++:
Ver originalunsigned int WINAPI callback(void * params)
{
//Esta funcion se ejecutara durante la vida del hilo...
}
void main()
{
CThread * th = new CThread();
th->Start(callback, params);
th->Resume();
}
Un saludo!