boost::asio::steady_timer的一个错误用法
来源:互联网 发布:粤贵银模拟交易软件 编辑:程序博客网 时间:2024/05/03 20:11
boost::asio::steady_timer的一个错误用法。
//使用boost.chrono代替std.chrono,#define BOOST_ASIO_DISABLE_STD_CHRONO#include <boost/asio.hpp>#include <boost/asio/steady_timer.hpp>#include <boost/asio/placeholders.hpp>#include <boost/thread.hpp>#include <boost/format.hpp>bool g_isExit = false;void DoSth(int idx, const boost::system::error_code& errCode){ if (errCode) { std::string str = (boost::format("idx=%|d|, value=%|d|, message=%|s|") % idx%errCode.value() % errCode.message()).str(); std::cout << str << std::endl; return; } else { std::string str = (boost::format("idx=%|d|, doing") % idx).str(); std::cout << str << std::endl; } boost::this_thread::sleep_for(boost::chrono::seconds(3));//做什么事情,花费了3秒钟, g_isExit = true; return;}int main(int argc, char** argv){ boost::thread_group thgp; boost::asio::io_service io; boost::asio::io_service::work wk(io); thgp.create_thread(boost::bind(&boost::asio::io_service::run, boost::ref(io))); thgp.create_thread(boost::bind(&boost::asio::io_service::run, boost::ref(io))); boost::asio::steady_timer timer(io); //boost::asio::steady_timer注册了一个回调函数,这个回调函数将在1000ms后被回调, timer.expires_from_now(boost::chrono::milliseconds(1000)); timer.async_wait(boost::bind(&DoSth, 1, boost::asio::placeholders::error)); //回调函数没有被处理之前,又注册了一个回调函数,那么上一个回调函数就会执行失败, //错误信息: value=995, message=由于线程退出或应用程序请求,已中止 I/O 操作。 timer.expires_from_now(boost::chrono::milliseconds(1000)); timer.async_wait(boost::bind(&DoSth, 2, boost::asio::placeholders::error)); while (false == g_isExit) { boost::this_thread::sleep_for(boost::chrono::milliseconds(10)); } std::cout << "press ENTER to exit..." << std::endl; std::cin.sync(); while (getchar() != '\n') {}}
完。
0 0
- boost::asio::steady_timer的一个错误用法
- boost::asio::steady_timer基础使用
- boost::asio::error的用法
- boost::asio::error的用法浅析
- Boost::Asio::Error的用法浅析
- Boost::Asio::Error的用法浅析
- Boost中ASIO的一些用法-定时器
- boost::asio::buffer用法
- boost的asio使用中的一个问题
- boost::asio要注意的一个地方
- Boost::Asio一个简单的Echo服务器
- boost::asio一个简单的echo服务器
- boost asio的一个异步调用小测例
- Boost::Asio一个简单的Echo服务器
- Boost::Asio一个简单的Echo服务器
- boost::asio一个简单的echo服务器
- 【Boost】boost库asio详解6——boost::asio::error的用法浅析
- 【Boost】boost库asio详解6——boost::asio::error的用法浅析
- 母亲无辜惨死被认定负主责,泰兴交警公道何在?
- JSTl和EL
- refresh的停车场
- 147.View the Exhibit. You want to create a tablespace to contain objects with block size 16 KB. But
- java获取程序执行时间
- boost::asio::steady_timer的一个错误用法
- char、varchar、nchar、nvarchar特点比较
- Codeforces 703C Chris and Road 二分、思考
- csu 1588
- JAVA 中BIO,NIO,AIO的理解
- Codeforces Round #365 (Div. 2) -- C. Chris and Road (思路水题)
- 关于云计算(Cloud Computing)的一些概念
- Linux基本命令练习(3)
- hdu 3047 带权并查集