📄 mythread.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 + -