简单的线程基类

原创 2006年05月18日 17:08:00

 

typedef unsigned (WINAPI *PTHREADFUN)(LPVOID lpParameter);

class CThread
{
public:
 CThread(void) {}
 ~CThread(void) {}

 void Start(void);
 void Stop(void) const { CloseHandle(m_hThread); }

 static DWORD WINAPI ThreadFun(LPVOID lpParameter);
 virtual DWORD WINAPI ThreadWorkItem(LPVOID lpParameter) = 0;

private:
 HANDLE m_hThread;
 DWORD m_dwThreadID;
};

inline void CThread::Start(void)
{
 m_hThread = reinterpret_cast<HANDLE>(_beginthreadex(NULL, NULL, (PTHREADFUN) ThreadFun, this, 0, (unsigned*) &m_dwThreadID));
 if (m_hThread == NULL)
 {
  throw Exception("Error: Start thread!");
 }
}

inline DWORD WINAPI CThread::ThreadFun(LPVOID lpParameter)
{
 CThread *pThread = reinterpret_cast<CThread*> (lpParameter);
 pThread->ThreadWorkItem(lpParameter);
 return 0;
}

只要继承上面的类,然后重写ThreadWorkItem(LPVOID)这个函数就可以了。

class test : public CThread
{
public:
 test(void) {}
 ~test(void) {}

 DWORD WINAPI ThreadWorkItem(LPVOID lpParameter){ cout<<"线程执行的操作"<<endl; }

};

 

 

简单的线程基类

typedef unsigned (WINAPI *PTHREADFUN)(LPVOID lpParameter);class CThread{public: CThread(void) {} ~CT...
  • Augusdi
  • Augusdi
  • 2010年06月28日 15:58
  • 806

一个简单的基类

从一个类派生出另一个类时,原始类称为基类,
  • lijing805326040
  • lijing805326040
  • 2014年06月25日 16:50
  • 250

JAVA实现的简单多线程

线程是一个程序的顺序控制流,从执行流的角度来说,线程是动态的。 进程是一个静态的概念,比如计算机中的一个. exe文件是一个进程。 一个线程中是顺序执行的,同一线程共享代码和数据空间,每个线程有自...
  • u010839723
  • u010839723
  • 2015年03月20日 17:00
  • 624

一个简单的线程demo

package com.hiveview.test.api; public class FlashDeal implements Runnable { private int total ...
  • u013036068
  • u013036068
  • 2016年10月19日 14:56
  • 983

一个简单的java线程代码

一个简单的java线程代码。其实线程也就那么回事,package thead;public class testThead2 {    /**     * @param args     */    ...
  • changtiger
  • changtiger
  • 2007年11月12日 12:49
  • 843

线程基类

每次创建线程相当麻烦,总是不记得一些参数和
  • zhuxian2009
  • zhuxian2009
  • 2014年09月24日 18:27
  • 340

C++ 虚拟基类

我们知道,如果一个派生类有多个直接基类,而这些直接基类又有一个共同的基类,则在最终的派生类中会保留该间接共同基类数据成员的多份同名成员。在引用这些同名的成员时,必须在派生类对象名后增加直接基类名,以避...
  • zwjzwj108108
  • zwjzwj108108
  • 2014年08月09日 21:44
  • 1060

java 线程 简单例子

本片文章以Java多线程简单实力为主,全部的例子选自java 编程思想第四版,全部都是自己手动对书 编写,如有疑问请直接留言。 import java.util.ArrayList; import j...
  • liang_henry
  • liang_henry
  • 2016年11月18日 11:20
  • 1258

最简单的线程并发例子

 用一个线程来实现这个功能1:变量i从0--40000来循环改变一个label1的值,值和i的值一样 然后不用线程也实现这个label2的显示功能2 如何把功能1和功能2同时进行?    1、建立主程...
  • Devillyd
  • Devillyd
  • 2006年11月06日 11:31
  • 1386

简单的多线程理解

C++本身并没有提供任何多线程机制,但是在windows下,我们可以调用SDK win32 api来编写多线程的程序,下面就此简单的讲一下: 创建线程的函数 HANDLE CreateThread...
  • ranjiewen
  • ranjiewen
  • 2016年09月20日 14:09
  • 157
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:简单的线程基类
举报原因:
原因补充:

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