|
在WINDOWS XP平台上开发服务端程序,很一部分模式是这样的,
1,建立EVENT,
2,wiatforsingleobject或 WaitForMultipleObjects等待EVENT事件,之后再处理数据
这种模式在WINDOWS平台上很普遍,可是用ACE来实现这种方法,我不知道该怎么去实现,用哪些模式,用哪些类.我在comp.soft-sys.ace (关键字WIN32 EVENT) 上搜了一下,有好多人也问这个问题都是都没有得到正面的回答,只是说要用其它的模式,用哪些模式怎么用都没有说.我又看了看书和网上的资料,发现有以下几种方案比较接近,但是效果怎样还不太清楚
1,使用ace_event类,这个类是跨平台实现了"事件",可以用ace_event:wait方法等待,但是这种方法比较"简漏"
2.条件变量,发消息.在线程之间传递状态使用条件变量,传递数据使使用发消息(消息队列)
3.REACTOR模式,register_handle方法,我看了文档,可以使用posix 平台上的信息,也可以使用WIN32 平台上的"平台对象",但是我试过了,不行,SETEVENT之后不会触发handle_signal事件,我不知道是我对"平台对象"的理解错误还是根本就不支持WIN32平台上的EVENT
我想请教各位有经验的高手,你们是怎么实现的.thank a lot! |
|