chqthread.cpp

来自「《脚本驱动的应用软件开发方法与实践》源代码下载」· C++ 代码 · 共 62 行

CPP
62
字号
// 
// CHQThread.cpp
// 
// --------------------------------------------------------
// A Practical Guide to Script-Driven Software Development
// Author: Qiming Lu                        Date: 6/1/2006
// MSN Messager: luqiming26@hotmail.com
// MSN Blog: http://spaces.msn.com/jemylu
// --------------------------------------------------------

#include "stdafx.h"
#include "CHQThread.h"

//////////////////////////////////////////////////////////////////////////////
CHQThread::CHQThread() : mhThread(0), mbWorking(false), mbExiting(false)
{
}

CHQThread::~CHQThread()
{
	Stop();
}

bool CHQThread::Start()
{
	if (mbWorking)
	{
		return true;
	}

	mbExiting = false;
	DWORD threadID = 0;
	mhThread = CreateThread(0, 0, ThreadProc, this, 0, &threadID);
	return (mhThread != 0);
}

void CHQThread::Stop()
{
	if (mbWorking)
	{
		mbExiting = true;

		if (mhThread) 
		{
			WaitForSingleObject(mhThread, INFINITE);
			mhThread = 0;
		}
	}
}

DWORD WINAPI CHQThread::ThreadProc(void * pParam)
{
	CHQThread * pThread = static_cast<CHQThread*> (pParam);
	if (pThread)
	{
		pThread->mbWorking = true;
		pThread->Process();
		pThread->mbWorking = false;
		return 1;
	}	
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?