⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mythread.h

📁 SQLBig5BugTool 宽字符操作问题
💻 H
字号:
// **********************************************************************
//
// Copyright (c) 2004
// All Rights Reserved
//
// Author: Wu yongmin
// Created:	2004/11/03   0:28
//
// **********************************************************************

#ifndef	_MY_THRED_H_
#define _MY_THRED_H_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000



#include "BaseSupport.h"

	const TIME_WAITINGCLOSE	= 3000;		// 3000ms
	
	class IThreadEvent  
	{
	public:
		virtual int		OnThreadCreate	(void)	{return 0;};		
		virtual int		OnThreadDestroy	(void)	{return 0;};
		
		virtual int		OnThreadEvent  	(void)	{return 0;};
		virtual int		OnThreadProcess	(void)	= 0;
	};
	
#define DEFAULT_WORK_INTERVAL 0
	
	enum { THREADSTATUS_INIT = 0, THREADSTATUS_SUSPEND, THREADSTATUS_RUNNING, THREADSTATUS_CLOSING, THREADSTATUS_CLOSED };

	class BASESUPPORT_API CMyThread  
	{
	public:
		CMyThread(IThreadEvent& event);
		virtual ~CMyThread();
		
	public:
		enum { SUSPEND = true, RUN = false };

		bool	Init(
			bool bSuspend = SUSPEND, 
			DWORD dwWorkInterval = DEFAULT_WORK_INTERVAL
			);

		bool	Close		(const DWORD dwWaitMS=0);
		void	Resume		(void);
		void	Suspend		(void);
		
		void	SetEvent	(void)					{ m_bWorkEvent=true; }
		
		int		GetStatus	(void) const			{ return m_nStatus; }
		
		time_t GetThreadStartTime()const {return m_tThreadStartTime;};

	protected:
		DWORD				m_dwWorkInterval;
		IThreadEvent&		m_event;
		
	private:
		HANDLE				m_hThread;

		bool					m_bShouldExit;
		bool					m_bWorkEvent;
		
		DWORD				m_id;
		volatile int		m_nStatus;
		
		static DWORD WINAPI RunThread(LPVOID pThreadParameter);
		
		time_t		m_tThreadStartTime;
		
	public:
		static CMyThread*	CreateNew(
			IThreadEvent& refEvent, 
			bool bSuspend = RUN, 
			DWORD dwWorkInterval = DEFAULT_WORK_INTERVAL
			);
		
	};


#endif // 

⌨️ 快捷键说明

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