当前位置: 首页 > news >正文

图片手机网站建设网络营销推广的手段

图片手机网站建设,网络营销推广的手段,logo在线制作软件,sasaki景观设计公司官网一个抽象的线程基类, 再来个具体的线程类并实现相关接口#xff0c;再写个主函数来调用下。上代码#xff1a; Thread.h /*Windows平台线程类实现开发环境: Win7_x64 VC2012*/#ifndef __THREAD_H__#define __THREAD_H__#pragma once#include string#include w…一个抽象的线程基类, 再来个具体的线程类并实现相关接口再写个主函数来调用下。上代码 Thread.h /* Windows平台线程类实现 开发环境: Win7_x64 VC2012 */ #ifndef __THREAD_H__ #define __THREAD_H__ #pragma once #include string #include windows.h /* 1. 线程基类, 要创建新的线程类, 只需要继承此类并实现相关接口 2. 要开启线程并运行只需要调用Start()函数 3. 未完善地方: 应该写个虚函数Stop(), 当线程过程在运行时可以设置下运行标志变量让线程 退出循环过程, 再作些清理工作, 避免暴力终止线程。 */ class CThread // 抽象的线程基类 { public: CThread(const std::string threadName noNamed); virtual ~CThread(); virtual void Run() 0; // 线程执行过程 virtual bool Start(bool bSuspended/* false*/); void Join(int timeout -1); // 等待超时时间为负时, 表示无限等待 void Resume(); // 恢复挂起的线程 void Suspend(); // 挂起线程 bool Terminate(unsigned long exitCode); // 结束线程 unsigned int GetThreadID(); // 获取线程ID std::string GetThreadName(); void SetThreadName(std::string threadName); private: bool CreateThread(bool bSuspended false);// 开始运行线程 static unsigned int WINAPI StaticThreadFunc(void* arg); // 线程函数 protected: HANDLE m_handle; std::string m_threadName; unsigned int m_threadID; volatile bool m_bRun; // 表明线程是否已成功创建(实际上与m_handle含义相同了) }; #endif Thread.cpp: #include iostream #include process.h #include Thread.h CThread::CThread(const std::string threadName) : m_threadName(threadName), m_threadID(0), m_bRun(false) { } CThread::~CThread() { printf(~CThread()\n); } bool CThread::Start(bool bSuspend/* false*/) // 创建线程并运行(默认)或挂起 { m_bRun CreateThread(bSuspend); return m_bRun; } bool CThread::CreateThread(bool bSuspend/* false*/) // 创建线程并运行(默认)或挂起 { if(!m_bRun) { if(bSuspend) m_handle (HANDLE)_beginthreadex(NULL, 0, StaticThreadFunc, this, CREATE_SUSPENDED, m_threadID); else m_handle (HANDLE)_beginthreadex(NULL, 0, StaticThreadFunc, this, 0, m_threadID); m_bRun (NULL ! m_handle); } return m_bRun; } void CThread::Join(int timeout/* -1*/) // 等待超时时间(毫秒)为负时, 表示无限等待 { if(m_handle m_bRun) { if(timeout 0) timeout INFINITE; ::WaitForSingleObject(m_handle, timeout); } } void CThread::Resume() // 恢复挂起的线程 { if(m_handle m_bRun) ::ResumeThread(m_handle); } void CThread::Suspend() // 挂起线程 { if(m_handle m_bRun) ::SuspendThread(m_handle); } bool CThread::Terminate(unsigned long exitCode) // 结束线程 { if(m_handle m_bRun) { if(::TerminateThread(m_handle, exitCode)) { ::CloseHandle(m_handle); m_handle NULL; m_bRun false; return true; } } return false; } unsigned int CThread::GetThreadID() { return m_threadID; } std::string CThread::GetThreadName() { return m_threadName; } void CThread::SetThreadName(std::string threadName) { m_threadName threadName; } unsigned int CThread::StaticThreadFunc(void* arg) // 线程函数 { CThread* pThread (CThread*)arg; // 取得线程类指针 pThread-Run(); // 执行线程过程函数 return 0; } Thread1.h #ifndef __THREAD1_H__ #define __THREAD1_H__ #pragma once #include Thread.h /* 1. 要创建一个新线程类时只需要继承CThread, 然后在Run()中实现自己的线程过程(Run()) */ class CThread1: public CThread // 线程类1 { public: CThread1(const std::string threadName noNamed); virtual ~CThread1(void); bool Start(bool bSuspended/* false*/); virtual void Run(); }; #endif Thread1.cpp #include iostream #include Thread1.h CThread1::CThread1(const std::string threadName): CThread(threadName) { } CThread1::~CThread1() { printf(~CThread1()\n); } bool CThread1::Start(bool bSuspended/* false*/) { // todo: 此处可添加一些初始化代码 return CThread::Start(bSuspended); } void CThread1::Run() { int cnt 0; while(cnt 10) { std::cout Hello m_threadName ::Run(): cnt std::endl; Sleep(200); } } main.cpp #define _CRT_SECURE_NO_WARNINGS #include iostream #include Thread1.h #define N 15 int main(int argc, char* argv[]) { char buf[20] {0}; CThread* t[N] {NULL}; for(int i 0; i N; i) { sprintf(buf, Thread%d, i1); t[i] new CThread1(buf); t[i]-Start(true); std::cout t[i]-GetThreadName() : t[i]-GetThreadID() std::endl; t[i]-Resume(); } for(int i 0; i N; i) t[i]-Join(); return 0; }
http://www.pierceye.com/news/586478/

相关文章:

  • 电子商务网站开发的任务书wordpress图片间距
  • 石家庄集团网站建设哪些网站可以做微信
  • 网站文件夹名平台期什么意思
  • 怎么用vps做网站论坛网站建设视频
  • 广州网站制作实力乐云seowordpress 评论模块
  • 永久免费制作网站木门行业做网站有什么好处
  • 怎么区分模板网站wordpress菜单怎么建
  • 网站开发最新效果企业手机网站建
  • 网站群管理系统哪个好wordpress制作会员功能
  • 做套现网站网站的访问量
  • 做网站网页需要学些什么做网站学的什么专业
  • 建设银行的官方网站纪念币公司宣传页设计印刷
  • 网站左侧图片悬浮代码常州工厂网站建设
  • 智慧团建网站怎么转团关系app制作开发小程序制作开发
  • 誉字号网站wordpress 展示模板下载
  • 网站不接入备案成都市建设工程质量协会网站
  • 企业网站html网站开发济南招聘
  • 网站html优化方法音乐网站开发参考文献
  • 网站建设及推广方案ppt模板微信小程序开发工具下载哪个版本
  • 固安县城乡和住房建设局网站科技公司手机端网站
  • 寿光网站建设思科企业网络拓扑图
  • 中国建设银行河南省分行网站建筑人才服务中心官网
  • 响应式app网站模板单页淘宝客网站2014年行吗
  • 西安网站推广优化高端定制网站开发设计建站流程
  • m版网站开发公司如何做网络推广营销
  • 济宁商城网站开发设计网址源码在线查看
  • 网站建设公司介绍百度电脑怎么用wordpress
  • 宛城区网站建设广东seo推广方案
  • 北京建网站定制价格网站风格总结
  • 如何建设一个购物网站wordpress 优酷插件