CreateThread有个参数,有时候建立时是暂停线程的。推荐用AfxBeginThread()
解决方案 »
- 求助 mfc 中dll反复加载 卸载问题!
- 在directshow中怎么用上外加的解码,不是directshow自身带的解码filter
- 窗口和进程的关系????????????????????????????????????????
- 快疯了,高手帮帮忙,救命啊
- 关于ctabctrl中显示tab的问题
- *** 如果在某个控件上作图的画,是不是应该重载该控件的OnPanit() ***
- 使用html help workshop碰到的问题
- 我们的商业计划,欢迎有兴趣的朋友加盟,也欢迎大家多提意见!
- 请问怎样用vc编一个录音的程序?
- 有谁知道VisualAge c++4.0 for NT?
- 高分请教!怎么把一个HBITMAP转成Jpeg格式?(Buffer或者文件均可)
- OpenGL纹理贴图效率问题!100分,不够可以再加,最多给1000分!
在主线程中应该有等待线程退出的语句,例如这样WaitForSingleObject(ghPollThread, INFINITE);这样你就可以跟踪到线程内部去了见msdn原话:
Because a DLL is not a task, it does not have a message queue. When a DLL calls SetTimer(), Windows places the resulting WM_TIMER messages into the message queue of the currently active task, which is the application instance that called into the DLL. 所以你无法在dll内获得系统自动给你派发的wm_timer消息,只有自行处理此类消息。例如:调用
PostThreadMessage(gdwThreadId, WM_TIMER, (WPARAM)guTimerId, (LPARAM)0)函数当然,线程应该在消息发送之前已经建立消息队列,这可以使用win32提供的任意同步机制
SnmpExtensionInit由windows2000的SNMP服务调用,按msdn原话,是不是说wm_timer消息被放在了SNMP服务的消息队列中了?自行处理此类消息是怎样的?PostThreadMessage函树在什么地方调用?我把SetTimer改成这样,是不是可以呢?
guTimerId = SetTimer( GetParent( (HWND)ghPollThread ), 1, 2000, NULL );
SnmpExtensionInit由windows2000的SNMP服务调用,按msdn原话,是不是说wm_timer消息被放在了SNMP服务的消息队列中了?自行处理此类消息是怎样的?PostThreadMessage函树在什么地方调用?我把SetTimer改成这样,是不是可以呢?
guTimerId = SetTimer( GetParent( (HWND)ghPollThread ), 1, 2000, NULL );
我昨天在线程中直接使用PeekMessage建立消息队列就接受不到wm_timer消息
创建一个隐含窗口应该可以,msdn上好像有例子
或者直接在主线程中使用postthreadmessage给线程发送消息也应该能够解决