java主动对象模式_POCO的主动对象

摘自: http://pocoproject.org/docs/00100-GuidedTour.html

Active object is an object that has methods executing in their own

thread. This makes asynchronous member function calls possible — call a

member function, while the function executes, do a bunch of other

things, and, eventually, obtain the function's return value. The

following example shows how this is done in POCO. The ActiveAdder

class in defines an active method add()

, implemented by the addImpl()

member function. Invoking the active method in main()

yields

an Poco::ActiveResult

(also known as a

future), that eventually receives the function's return value.

#include "Poco/ActiveMethod.h"

#include "Poco/ActiveResult.h"

#include

using Poco::ActiveMethod;

using Poco::ActiveResult;

class ActiveAdder

{

public:

ActiveObject(): activeAdd(this, &ActiveAdder::add)

{

}

ActiveMethod, ActiveAdder> add;

private:

int addImpl(const std::pair& args)

{

return args.first + args.second;

}

};

int main(int argc, char** argv)

{

ActiveAdder adder;

ActiveResult sum = adder.add(std::make_pair(1, 2));

// do other things

sum.wait();

std::cout << sum.data() << std::endl;

return 0;

}

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2010-06-22 14:12

浏览 299

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值