#include "Poco/ActiveMethod.h"
#include "Poco/ActiveResult.h"
#include <utility>
#include <iostream>
using Poco::ActiveMethod;
using Poco::ActiveResult;
class ActiveAdder
{
public:
ActiveAdder(): add(this, &ActiveAdder::addImpl)
{
}
ActiveMethod<int, std::pair<int, int>, ActiveAdder> add;
private:
int addImpl(const std::pair<int, int>& args)
{
return args.first + args.second;
}
};
int main(int argc, char** argv)
{
ActiveAdder adder;
ActiveResult<int> sum = adder.add(std::make_pair(1, 2));
// do other things
for(int i=0;i<10;++i)
std::cout<<i+1<<std::endl;
// sum.wait();
while(sum.available())
break;
std::cout << sum.data() << std::endl;
return 0;
}
转载于:https://www.cnblogs.com/L-Arikes/p/4969536.html
Poco库ActiveMethod示例
本文介绍并演示了如何使用Poco库中的ActiveMethod特性实现异步加法操作。通过定义ActiveAdder类和其成员函数addImpl,我们创建了一个可以接收一对整数参数并返回它们之和的ActiveMethod实例。在main函数中,我们调用了这个ActiveMethod实例,并在执行其他任务的同时等待结果。此示例展示了Poco库在处理异步任务方面的灵活性。
828

被折叠的 条评论
为什么被折叠?



