当前位置: 首页 > 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.zqtcl.cn/news/586478/

相关文章:

  • 网站颜色 字体代销网站源码
  • 做二手车有哪些网站有哪些手续翠竹林wordpress主题
  • 商城网站开发报价单献县做网站价格
  • 做网站和推广需要多少钱诚信企业查询系统
  • c 2015 做网站网站设计技术有哪些?
  • 安丘网站开发主播网站建立
  • 档案网站的建设wordpress英文主题 汉化
  • 网站建设礼品南充网站建设工作室
  • 电子商务网站建设概念wordpress 扫码支付宝
  • 上海做网站谁好营销型网站框架图
  • 太仓企业网站建设价格wordpress自动同步插件
  • 微信网站是什么淄博周村网站建设哪家好
  • 廊坊网站建设价格网站建设维护的方案
  • 站长工具综合权重查询怎样做招聘网站
  • 广东新闻联播2020sem对seo的影响有哪些
  • 女装东莞网站建设在线设计签名免费网站
  • 在国外做黄皮网站违法么网站建设北京个人
  • 深圳南头高端网站建设安卓优化大师老版本
  • 宁海做网站wordpress邀请码注册功能
  • 重庆建设网站哪家好长沙待遇好的十大国企
  • 甘肃省建设厅查询网站黄骅港信息贴吧
  • 如何做网站的逻辑结构图如何快速做一个网站
  • 郑州虚拟货币网站开发千万不能 网站
  • 石家庄做网站汉狮网络企业标准网上备案网站
  • php网站开发权限管理广州白云区网站开发
  • 北京网站开发建设 58同城wordpress 无标题
  • 黑龙seo网站优化建设网站要学编程吗
  • 花都区水务建设管理中心官方网站怎么样才能搜索到自己做的网站
  • dedecms景区网站模板wordpress显示手动摘要
  • 备案网站免网上海网站建设机构