使用timerSetEvent的限制
来源:互联网 发布:淘宝上1元包邮赚钱吗 编辑:程序博客网 时间:2024/05/10 20:19
估计是系统后台资源有限,单进程中只支持16个。相关的官方文章中没有类似说明。附上整理的代码
typedef bool (*pWinThreadCallbackFun)(void* pUser);static volatile long m_nTotalThreadCount;void CALLBACK CRython_MMTimer::TimerHandler(UINT id, UINT msg, DWORD dwUser, DWORD dw1, DWORD dw2){ CMMTimer* pThis = (CMMTimer*)dwUser; pThis->m_pThreadCallbackFun(pThis->m_pUser);}UINT CMMTimer::CreateTimer(int nSleepMS){ timeBeginPeriod(timeRes); UINT timerID = timeSetEvent( nSleepMS, timeRes, TimerHandler, (DWORD)this, TIME_PERIODIC); return timerID;}BOOL CMMTimer::Start(pWinThreadCallbackFun pWinThreadCallbackFun,void* pUser,int nSleepMS){ BOOL bFlag = FALSE; if (!m_bThreadRuning) { m_bThreadRuning =TRUE; m_pThreadCallbackFun=pWinThreadCallbackFun; m_pUser=pUser; hTimer = CreateTimer(nSleepMS); if(NULL != hTimer) { InterlockedIncrement(&m_nTotalThreadCount); bFlag = TRUE; } else { int eror = GetLastError();//创建第17个,显示183错误 m_bThreadRuning=FALSE; } } return bFlag;}void CMMTimer::Stop(){ if (m_bThreadRuning) { m_bThreadRuning=FALSE; timeKillEvent(hTimer); timeEndPeriod(timeRes); InterlockedDecrement(&m_nTotalThreadCount); timeRes = 1; hTimer = 0; }}
- 使用timerSetEvent的限制
- excel的使用限制
- 限制驱动器的使用
- 限制驱动器的使用
- 使用LONG的限制
- universe里面的限制:如何定义限制,使用限制
- EL表达式使用的限制
- 限制进程使用的资源
- MYSQL - 限制资源的使用
- Cookies对象的使用 限制
- NavigationView使用后的限制
- 虚函数的使用限制
- grub限制机器可使用的内存 linux内存限制
- fatal error C1076: 编译器限制,达到内部堆限制,使用/Zm指定更高的限制
- 组策略对软件使用的限制
- [原]限制软件的使用次数
- MYSQL中限制资源的使用
- 使用Oracle外部表的五个限制
- GSL样条函数插值1
- 关于java语言中容器的学习笔记
- js Math的使用
- HDFS命令行操作
- (android 地图开发) 高德地图添加浮动按钮
- 使用timerSetEvent的限制
- 八字易经算法之用JAVA实现简单择日算法
- java接收图片数据的字节数组并保存
- Struts2-Spring和Hibernate整合
- ride运行后无反应的解决方法
- MIPS GCC 嵌入式汇编(龙芯适用)
- GSL样条插值函数2
- 如何让公共播放器支持特殊格式文件
- Yii 中session存储对象 网页无法调用此session __PHP_Incomplete_Class