CEvent的效率,该怎么处理

CEvent的效率
一个线程收包,一个线程处理

处理线程在循环wait event,收包线程中没收到一个包,就setevent一次。

在一秒只有八个包的情况下,屏蔽掉处理线程中的处理部分,只打印一条log信息

八个包都收到了,但是处理线程中只能打印出2~3条log信息

为什么效率这么低呢?

奇怪的是,如果一秒8*58个包,没58个包,setevent一次,这个时候,处理线程中能打印出完整的8个log信息。

还有啥更好的通知方式呢?多谢。

------解决方案--------------------
Event效率是很低的 因为Event属于内核对象,要对他进行操作需要的cpu时钟周期很长(貌似是500到1000个左右,记不大清了).

如果觉得效率低的话使用自旋锁会好一些,不需要访问内核对象,一般50个时钟周期就可以搞定.(好像是的,如果你要准确数字的话再去查下资料吧,总之比事件要快好多...)
------解决方案--------------------
你这是两个线程,可以设置全局变量去解决这个问题。效率当然是最快的了。