#include "StdAfx.h" #include "PriorityThread.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif CPriorityThread::CPriorityThread(IPriorityThread2Parent* pFT2P, int nPriority) : CWorkThreadPool(1), m_pPT2P(pFT2P) { m_nPriority = nPriority; } CPriorityThread::~CPriorityThread(void) { } void CPriorityThread::WorkThreadProcess(PVOID pParameter) { if (m_pPT2P==NULL) return; CPriorityThreadData *pData = static_cast(pParameter); if (pData==NULL) return; HANDLE hThread = GetCurrentThread(); SetThreadPriority(hThread, m_nPriority); m_pPT2P->IPT2P_PriorityThread(pData); } BOOL CPriorityThread::AddPriorityThreadData(UINT msg, WPARAM wParam, LPARAM lParam) { CPriorityThreadData *pData = new CPriorityThreadData(this); if (pData==NULL) return FALSE; pData->m_unMsg = msg; pData->m_WParam = wParam; pData->m_LParam = lParam; return CreateWorkThread(pData); }