Cette classe s'inspire de la classe Thread de Java. Elle peut aussi servir d'exemple de classe virtuelle.
Pour l'utiliser, il suffit de créer une classe, de la faire hériter de la classe CThread et de surcharger la méthode Run.
Source / Exemple :
#pragma once
#include <windows.h>
#define WM_STOPTHREAD WM_USER
class CThread
{
public:
enum Priority
{
Basse = THREAD_PRIORITY_LOWEST,
Normale = THREAD_PRIORITY_NORMAL,
Critique = THREAD_PRIORITY_TIME_CRITICAL,
TempsReel = REALTIME_PRIORITY_CLASS
}Priority;
private:
HANDLE m_hThread;
DWORD m_dwThreadId;
BOOL m_bActif;
//thread
friend DWORD WINAPI Thread(LPVOID pParam);
protected:
//fonction virtuelle appelée par le thread
virtual void Run(void) = 0;
public:
//constructeur
CThread();
//destructeur
~CThread();
//lancer le thread
void Start(void);
//arrêter le thread
void Stop(DWORD dwTimeOut = INFINITE);
//terminer le thread (brutal)
void Terminate(void);
//changer la priorité
void SetPriority(int iPriority) const;
//retourne l'activité du thread
BOOL IsRunning(void) const;
//retourne le handle du thread
HANDLE GetHandle(void) const;
//retourne l'identifiant du thread
DWORD GetID(void) const;
//attend la fin du thread
DWORD Wait(DWORD dwTimeOut) const;
};
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.