- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 C++ 开发一个项目。
我希望在指定时间后调用一个 TimerHandler,但同时我不想阻塞当前线程或以下代码中 io.run() 之后的任何代码:
#include <iostream>
#include <string>
#include <boost/format.hpp>
#include <boost/asio.hpp>
#include <boost/bind.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
class TimerTest
{
public:
static void PrintOutTimerHandler(const boost::system::error_code&, const std::string& message)
{
std::cout << "PrintOutTimerHandler called: " << ", message: " << message << std::endl;
}
void run()
{
boost::asio::io_service io;
boost::asio::deadline_timer dt(io, boost::posix_time::seconds(5));
std::cout << "Start:\t" << std::endl;
dt.async_wait(boost::bind(PrintOutTimerHandler, boost::asio::placeholders::error, std::string("here is the message")));
// Do some job here
for (int i = 0; i < 1000000; ++i)
++i, --i;
std::cout << "End:\t" << std::endl;
io.run();
std::cout << "When to reach here 1: " << std::endl;
}
};
int main()
{
TimerTest tt;
tt.run();
std::cout << "When to reach here 2: " << std::endl;
return 0;
}
/* Current output:
Start:
End:
PrintOutTimerHandler called: , message: here is the message
When to reach here 1:
When to reach here 2:
*/
/* Expected output:
Start:
End:
When to reach here 1:
When to reach here 2:
PrintOutTimerHandler called: , message: here is the message
*/
我想我已经说清楚了。我的问题是:
谢谢。
彼得
最佳答案
这是一个例子。在单独的线程中运行 io_service
asio::io_service io_service;
asio::thread t(boost::bind(&asio::io_service::run, &io_service));
或者在线程组中运行
boost::thread_group threads;
for (std::size_t i = 0; i < my_thread_count; ++i)
threads.create_thread(boost::bind(&asio::io_service::run, &io_service));
请记住,您的主线程应该始终运行,因为当它存在时,所有产生的线程也会退出。
希望对您有所帮助。
关于c++ - 如何使用 Boost 库创建 TimerHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6026467/
所以 我有一个每秒都会调用的方法来将 Sprite 添加到场景中。 我想要做的是能够控制调用该方法时添加 Sprite 的百分比。 所以我尝试使用 Math.Random() > .3; 基本上,添加
似乎TimerHandle不可等待。假设我拥有所有 TimerHandle,等待使用 asyncio.call_later 安排的所有回调的首选方法是什么。 最佳答案 好的,我已经研究了如何 asyn
我正在使用 C++ 开发一个项目。 我希望在指定时间后调用一个 TimerHandler,但同时我不想阻塞当前线程或以下代码中 io.run() 之后的任何代码: #include #include
我创建了这个方法,每秒向我的 andengine 场景添加一个 Sprite 。 private void createSpriteSpawnTimeHandler(){ Timer
我在 andEngine 中使用这个 TimerHandler 在特定时间生成 Sprite .. mScene.registerUpdateHandler(new TimerHandler(0.
我想像我们在主页上的 facebook 和 linkedin 中那样更新实时服务器上使用的 angular 7 接收到的消息数,我尝试了以下代码:- 获取消息的代码:- getMessageCount
使用 AndEngine GLES2 开发游戏 我在尝试更改我从 TimerHandlers 回调中添加到场景的矩形的比例时遇到问题。每当计时器计时时,它都会进行百分比计算,然后在 OnTimePas
我是一名优秀的程序员,十分优秀!