结合 异常捕获体系的 线程基类封装 (一)

原创 2012年03月30日 14:29:44

//////////////////////////////////////////////////////////////////////
//
// Thread.h
//
//

 

#ifndef __THREAD_H__
#define __THREAD_H__


//////////////////////////////////////////////////
// include files
//////////////////////////////////////////////////
#include "Type.h"

 


//当定义此宏时,所有线程将只执行一次后就推出。
//#define _EXEONECE 10

//////////////////////////////////////////////////////////////////////
//
// class Thread
//
// POSIX Thread Class
//
//////////////////////////////////////////////////////////////////////

class Thread
{

//////////////////////////////////////////////////
// constants
//////////////////////////////////////////////////
public :
 
 enum ThreadStatus
 {
  READY ,  // 当前线程处于准备状态
  RUNNING , // 处于运行状态
  EXITING , // 线程正在退出
  EXIT  // 已经退出
 };
 

//////////////////////////////////////////////////
// constructor and destructor
//////////////////////////////////////////////////

public :

 // constructor
 Thread ( ) ;

 // destructor
 virtual ~Thread () ;


//////////////////////////////////////////////////
// public methods
//////////////////////////////////////////////////

public :

 VOID start () ;
 
 virtual VOID stop () ;

 VOID exit ( VOID * retval = NULL ) ;

 virtual VOID run () ;


//////////////////////////////////////////////////
//
//////////////////////////////////////////////////
public :
 // get thread identifier
 TID getTID () { return m_TID; }
 
 // get/set thread's status
 ThreadStatus getStatus () { return m_Status; }
 VOID setStatus ( ThreadStatus status ) { m_Status = status; }
 

//////////////////////////////////////////////////
// data members
//////////////////////////////////////////////////

private :

 // thread identifier variable
 TID m_TID;
 
 // thread status
 ThreadStatus m_Status;

#if defined(__WINDOWS__)
 HANDLE m_hThread ;
#endif

};

extern uint g_QuitThreadCount ;

#if defined(__LINUX__)
VOID * MyThreadProcess ( VOID * derivedThread ) ;
#elif defined(__WINDOWS__)
DWORD WINAPI MyThreadProcess(  VOID* derivedThread ) ;
#endif

#endif

结合 异常捕获体系的 线程基类封装 (三)

//共享锁 #if defined(__WINDOWS__) class MyLock {  CRITICAL_SECTION m_Lock ; public :  MyLock( ){ ...
  • gumingyaotangwei
  • gumingyaotangwei
  • 2012年03月30日 14:32
  • 752

结合 异常捕获体系的 线程基类封装 (二)

#include "stdafx.h" ///////////////////////////////////////////////////////////////////////////////...
  • gumingyaotangwei
  • gumingyaotangwei
  • 2012年03月30日 14:30
  • 860

Android Activity基类封装

编写一个Activity基类,对Activity进行封装,方便使用,参考知乎上一个帖子,可以点击这里查看1、新建抽象类ParentActivity继承AppCompatActivity,并实现OnCl...
  • y331271939
  • y331271939
  • 2016年08月15日 23:28
  • 2984

封装篇——基类Activity

说说为什么要做基类Activity: 1. 统一风格,易调整(吐司、系统栏颜色、进入退出动画…) 2. 细化基础生命周期方法,减少代码量。 总而言之,封装就是为了更优雅的写代码。。。本文将从以下...
  • sinat_15877283
  • sinat_15877283
  • 2016年04月07日 16:14
  • 4272

基类BaseViewController

这个类比较适合纯代码开发项目,它的内部有两个公共属性,都是 UIView。一个作为自定义导航栏的superView,另作为除导航栏外的其他界面元素的superView。    它会自动监测当前设备...
  • u012259496
  • u012259496
  • 2015年09月25日 09:28
  • 1807

Android设计模式之Activity基类封装

说到设计模式,反正只要做过开发的就能说出一大堆设计模式,像最常用的单例设计模式、工厂设计模式、MVC设计模式等等。但是我们每个人知道这么多设计模式,那么运用的实际开发中的又有多少呢,所以用实践检验真理...
  • jsonnan
  • jsonnan
  • 2017年05月09日 16:37
  • 623

webView封装基类,wk/ui依据系统版本

github地址: https://github.com/yuqingzhude/QZBaseWebVCDemoREADME.mdQZBaseWebVCDemoWebView基类,>iOS8使用WK...
  • yuqingzhude
  • yuqingzhude
  • 2016年08月26日 11:56
  • 568

iOS控制器之基类设计

题记 在进入新公司后。经过这一个月的重构项目,终于把项目做到了个人相对满意的程度(还有一种不满意的叫老板的需求,提过多次意见也没用= =!)。在这次重构中按照以前的思路设计出了个人觉得比较适用的...
  • lHz76ttw1U
  • lHz76ttw1U
  • 2017年03月08日 16:11
  • 371

Android捕获应用的异常信息-封装的很好的工具类

该异常捕获类包含了应用名,异常时间以及重要的异常信息,十分实用。 1.创建类CrashHandler.java package com.qhcloud.filetransfer.utils; i...
  • jdfkldjlkjdl
  • jdfkldjlkjdl
  • 2017年02月28日 23:21
  • 694

一般Fragment基类封装

package com.liuxuyang.myapplication.base; import android.os.Bundle; import android.support.v4.app.F...
  • weixin_36569761
  • weixin_36569761
  • 2016年11月10日 17:50
  • 201
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:结合 异常捕获体系的 线程基类封装 (一)
举报原因:
原因补充:

(最多只允许输入30个字)