tengmo535 发表于 2011-5-30 14:09:51

重复使用activate()会打开多个线程吗?

int open()
{
      activate();
}


**.open();
**.open();
**.open();
是否会开三个线程?

lihaowei2028 发表于 2011-5-30 14:28:21

本帖最后由 lihaowei2028 于 2011-5-30 14:29 编辑

不会, activate 会直接返回 1, 表示线程已经启动.对于代码, 你可以看一下 ace源码里关于方法activate 的代码   里面有这条语句   
if (this->thr_count_ > 0 && force_active == 0)
   return 1; // Already active.

备注:前提是你的三个 **表示的是同一个对象

tengmo535 发表于 2011-5-31 10:09:39

回复 2# lihaowei2028


    如果我这样:(假设在svc()中打开服务器侦听端口)
   **.close();
       **.open();
会不会无效,比如客户端端口连接不上的问题?

tengmo535 发表于 2011-6-1 11:31:18

这个不用回答了,问题跟这个没关系。已经解决了
页: [1]
查看完整版本: 重复使用activate()会打开多个线程吗?