Symbian 的缺陷(三)

篇首注:此文乃约一年前写就,其中可能有不正确的认识。现在借 CSDN 处新瓶装旧酒,供还在学习和使用 Symbian 的人员参考。

今天想写一个 Symbian 上的类似于 OutputDebugString 那样的函数,可以在另外的进程中接收其输出。像这样的有可能在多线程中使用的函数,毫无悬念地需要迫使你去和系统提供的同步对象打交道。

对于进程间的通知,我一直在感觉上倾向于使用 RProperty,因为它可以同时通知到所有对该属性感兴趣的进程。当然,也可以考虑 RCondVar,它也具备通知到所有等待于其上的进程的能力,但是它必须要与一个 RMutex 同时使用,不是很方便。(顺便说一下,其实一直也没太弄明白 conditional variable 的最佳使用场景,今天稍微有可点头绪,可以参看此文中的例子:http://learn.akae.cn/media/ch35s03.html)

查看 RProperty 的 Subscribe 方法时才发现,这个方法竟然没有超时设定,再去看 RMutex 等的 Wait,也一样。也就是说,我们最常用的 RMutex 对象,一旦 Wait 上去,那就只有死等,真不是一般的恐怖。不过 RSemaphore 是有的,RCondVar 也有。

一直在考虑如何使用其他同步对象实现类似于 Windows 平台的 Event 对象,目前还没有什么特别好的方案。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值