Symbian中不能跨越线程(RThread)使用的对象/组件(RSocket/Memery Heap,etc)

在Symbian C++的编程中,出现一很多与Windows/linux用法与概念不同的东西。
首先,在Symbian中不建议多线程,因为线程的开销,也因为线程之间有很多东西不能传递与共享(虽然同一进程中不同线程也是在同一个地址空间中),因而常用Active 对象来替代,常遇到的问题组件根据自己的经验总结如下:
一,RSocket:
   在一个线程中创建的RSocket对象,是不能被传到别一个线程中使用的。如果要使用,要在RSockServer的对象上做手脚。RSockServer server; server.connect();
server.ShareAuto(); RSocket socket; socket.Opne(server........);
但不幸的是,旧的Symbian版本不支持server.ShareAuto();
应该说Symbian是一个不稳定的操作系统,还处在成熟期。至少对于程序员的编程角度来说。
二。内存管理:
  在一个线程中分配的堆内存。在另一个线程中是不能delete/free的。

posted @ 2007-10-25 17:46  岁月无声  阅读(1091)  评论(0编辑  收藏  举报