ACE中的线程用于执行不同的操作

时间:2013-07-11 09:39:59

标签: ace

是否可以在c ++中使用ACE线程来执行不同的任务?

例如,假设用户创建两个名为threadA和threadB的线程。一旦他们完成某些函数的执行,我们可以使用相同的线程threadA和threadB进行其他操作吗?

如果可能的话怎么样?

请帮助我。

谢谢& Regrads 维卡斯

1 个答案:

答案 0 :(得分:0)

有什么好处? 无论如何,你可以创建自己的类派生自ACE_Task

class myjob : public ACE_Task< ACE_MT_SYNCH >
{
    public:
      ......
    //derived from ACE_Task
    virtual int open( void *arg = NULL );
    //derived from ACE_Task
    virtual int svc();
}

而不是打电话

this->activate();

in open();在

中完成你的工作
int svc()
{
    while( _running )
       ....
}

你可以将被ACE_Message_Block(myjob :: putq(ACE_Message_Block * pmb,ACE_Time_Value&amp; timeout))扭曲的消息传递给myjob,而不是选择要做什么。