问个关于MsgWaitForMultipleObjects的简单问题,急用!(20分)

  • 主题发起人 主题发起人 yhl1118
  • 开始时间 开始时间
Y

yhl1118

Unregistered / Unconfirmed
GUEST, unregistred user!
原来都是用application.processmessage + sleep(5)
现在发现有时候会出现问题,所以想使用MsgWaitForMultipleObjects这个函数。
谁能告诉我如何使用,如果我将等待的时间设置成20秒,在20秒前我想退出等待,
要发送什么消息?
 
不知道,关注
 
谁来说说吧!!!
 
呵呵,你不会用setevent函数,激发你等待的哪个事件句柄?
 
to: 张
呵呵,我从没有用过,能否简单写点代码,如何使用MsgWaitForMultipleObjects
又如何使用setevent来激活它,谢谢!
 
我在线程中是这样写的
msgHandles : THandle;
MsgWaitForMultipleObjects(0,msgHandles,False,20000,QS_ALLINPUT);
在线程外用SetEvent(MyThread[1].msgHandles);激活
可是MsgWaitForMultipleObjects没有反映,
 
这个函数很复杂,你要先创建一个事件句柄(或句柄数组),再去等待他,
通过设置参数,可以使MsgWaitForMultipleObjects在等待这个事件句柄数
组的同时可以处理你需要处理的消息。。。,如果想看这个函数的详细例子
DELPHI的哪个套接字数据库连接就是用这个函数处理异步网络数据发送问题
的,用搜索的办法在DELPHI的安装目录下找找就应该可以找到。。。
 
msgHandles : THandle;
msgHandles:=CreateEvent();//有几个参数需要设置,比如自动事件和手动事件
// 还有开始状态是发信号还是没有信号
MsgWaitForMultipleObjects(1,msgHandles,False,20000,QS_ALLINPUT);
 
多人接受答案了。
 
后退
顶部