Classe cthread

Description

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;
};

Codes Sources

A voir également

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.