博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
windows下多线程类CThread
阅读量:6236 次
发布时间:2019-06-22

本文共 1449 字,大约阅读时间需要 4 分钟。

忘记在哪位仁兄那里得到了,还没有验证过。备用吧,或许以后还是要自己实现。

其实,编程也就是这样啦。最适合、最放心的往往都是自己实现的。

 

#include 
#include
#include
#include
using namespace std;class CThread {public: CThread(); virtual DWORD Run(); bool Start(); bool Join(DWORD nMillSec = 200);private: static DWORD WINAPI RunThread(LPVOID pParam); HANDLE m_hThread; LPVOID m_pParam; DWORD m_nRet; bool m_bStart;};CThread::CThread(){ m_hThread = NULL; m_pParam = NULL; m_nRet = 0; m_bStart = false;}DWORD CThread::Run(){ return 0;}bool CThread::Start(){ m_bStart = true; m_hThread = CreateThread(NULL, 0, &RunThread, this, 0, NULL); if (!m_hThread) { m_bStart = false; return false; } return true;}bool CThread::Join(DWORD nMillSec){ while (m_bStart) Sleep(nMillSec); if (FALSE == GetExitCodeThread(m_hThread, &m_nRet)) return false; else { CloseHandle(m_hThread); return true; }}DWORD WINAPI CThread::RunThread(LPVOID pParam){ CThread* pThis = (CThread*)pParam; DWORD nRet = pThis->Run(); pThis->m_bStart = false; return nRet;}class MyThread : public CThread{public: DWORD Run();};DWORD MyThread::Run(){ cout << "..." << endl; return 0;}int main(int argc, char **argv){ MyThread my; my.Start(); my.Join(); return 0;}

 

转载于:https://www.cnblogs.com/xuejianhui/articles/3501670.html

你可能感兴趣的文章
JSTL中的fn函数
查看>>
16_Shell语言———for循环元素列表的生成法则
查看>>
计算机学习经典书籍
查看>>
使用beanuti将bean属性转成map
查看>>
apache以mod_proxy实现负载均衡集群
查看>>
dsfsdfsdfsdfsdfsdfsdf
查看>>
linux Platform设备驱动
查看>>
侦探推理小故事
查看>>
IPTV监测和测试设备
查看>>
rsync添加多模块,客户端推送出错!
查看>>
如何使用 Java8 实现观察者模式?(上)
查看>>
网络基础之--IP数据报、分片策略、路由表
查看>>
Spread for Windows Forms高级主题(6)---数据绑定管理
查看>>
关于ComponentOne For WinForm 的全新控件 – DataFilter数据切片器(Beta)
查看>>
HTTP状态码
查看>>
C语言运算符优先级 详细列表
查看>>
正则表达式基础整理
查看>>
android中Bitmap对象怎么保存为文件?
查看>>
shell 之 grep 和正则表达式(五)
查看>>
Angular中ngCookies模块介绍
查看>>