问题不太好描述,请大家进来看帖,给点宝贵意见吧……

jackey_option 2010-04-30 01:46:47

情况是这样:
我有一组对象,需要不断的查询每个对象的某些状态。

我现在有这样的想法:
(1)开启一个可以处理WM_TIMER消息的线程,简单称为MainThread
(2)MainThread每隔几秒就遍历一次这组对象
(3)在遍历到某一个对象时,创建一个简单线程,姑且称之为ChildThread.
ChildThread处理完后自动设置该对象状态,之后即终止

还有一些疑问
(1)MainThread能否产生自己的WM_TIMER事件
(2)MainThread每个几秒就遍历,这可能造成同一个对象,同一时间被多个ChildThread处理,造成查询结果的混乱。不知道,这应该怎么处理。

本来可以通过进程的响应WM_TIMER事件,进行不断的查询操作。
但是,这样会阻塞进程,造成界面死掉。所以想要线程来实现。

本人从来没用过线程,不知道这样描述的功能是否可以通过线程实现。
甚至不知道以上对线程的描述是否有术语上的错误,让各位高手见笑了。
...全文
88 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
尹成 2010-04-30
  • 打赏
  • 举报
回复
(1)MainThread能否产生自己的WM_TIMER事件
mainthread 自己不能产生 wm_timer事件,sleep()

(2)MainThread每个几秒就遍历,这可能造成同一个对象,同一时间被多个ChildThread处理,造成查询结果的混乱。不知道,这应该怎么处理。
bragi523 2010-04-30
  • 打赏
  • 举报
回复
1.直接在线程中加个消息循环
如:
DWORD WINAPI CFileTransferManager::MainThread( LPVOID lpParam )
{
MSG msg;
PeekMessage(&msg,NULL,0,0,PM_REMOVE);
while(GetMessage(&msg,NULL,0,0))
{
switch(msg.message)
{
case WM_CLOSE:
return 0;

}
}
return 0;
}

2.把其中代码放入临界区
visualassist4680 2010-04-30
  • 打赏
  • 举报
回复
(1)MainThread能否产生自己的WM_TIMER事件
mainthread 自己不能产生 wm_timer事件,sleep()

(2)MainThread每个几秒就遍历,这可能造成同一个对象,同一时间被多个ChildThread处理,造成查询结果的混乱。不知道,这应该怎么处理。
设置标准位,处理过了就置1,需要处理就置0
lizhongwen1987 2010-04-30
  • 打赏
  • 举报
回复

(1)MainThread能否产生自己的WM_TIMER事件

既然要几秒钟就执行一次,可以定义内核对象啊:可等待的计时器内核对象。CreateWaitableTimer();

(2)MainThread每个几秒就遍历,这可能造成同一个对象,同一时间被多个ChildThread处理,造成查询结果的混乱。

如果可能的话,可以在对象中定义一个字段,来指示他的状态,如果状态满足要求,就开启新的线程。

Eleven 2010-04-30
  • 打赏
  • 举报
回复
还有一些疑问
(1)MainThread能否产生自己的WM_TIMER事件
线程里Sleep(),或者WaitForSingleObject();设置超时值。

(2)MainThread每个几秒就遍历,这可能造成同一个对象,同一时间被多个ChildThread处理,造成查询结果的混乱。不知道,这应该怎么处理。
需要通过处理,SetEvent(),WaitForSingleObject(),或者CCriticalSelect()设置临界区,方法很多了,这样就可以了
向立天 2010-04-30
  • 打赏
  • 举报
回复
(1)MainThread能否产生自己的WM_TIMER事件
=====================
在里面用sleep

(2)MainThread每个几秒就遍历,这可能造成同一个对象,同一时间被多个ChildThread处理,造成查询结果的混乱。不知道,这应该怎么处理。
============================
可以通过event事件调度线程,如果处理一个对象的上一线程没结束就先不处理

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧