C++ 使用Poco库的定时器

createh514小时前技术教程5

C++中我们想用定时器该怎么弄了,可以借助Poco强大的能力来完成。

Poco C++库是:

  • 一系列C++类库,类似Java类库,.Net框架,Apple的Cocoa;
  • 侧重于互联网时代的网络应用程序
  • 使用高效的,现代的标准ANSI/ISO C++,并基于STL
  • 高可移值性,并可在多个平台下可用
  • 开源,并使用Boost Software License发布
  • 不管是否商用,都完全免费

Poco库概览

特性:

  • DynamicAny与Any类
  • Cache框架
  • 基于OpenSSL的密码系统
  • 日期,时间类库
  • 事件和通知框架
  • FTP客户端
  • 跨平台的文件系统类库
  • HTML表单类库
  • HTTP客户端和服务端(支持SSL),C++ 服务器页面编译器
  • 日志框架
  • 多线程框架(线程池,活动对象,工作队列等)
  • POP3客户端类库
  • 跨平台,一次编写,多平台编译和运行
  • 进程管理和进程间通信类库
  • 反射框架
  • 基于PCRE的正则表达式
  • SMTP客户端类库
  • 数据库访问类库(SQLite,MySQL, ODBC)
  • 支持SSL/TLS,基于OpenSSL
  • 动态类库加载
  • 先进的内存和指针管理(Buffer, Pool)
  • Socket类库
  • 网络数据流类库,支持Base64,HexBinary编解码,压缩等等
  • 字符串格式化和其它字符串工具类库
  • TCP服务器框架(多线程)
  • 文本编码和转换
  • Tuples
  • URI支持
  • 支持UTF8和Unicode编码
  • UUID生成器
  • XML生成和解析器
  • Zip文件操作类库

Poco的使命

  • Poco是一个强大的类库,并易于构建自己的应用程序
  • Poco帮助你创建跨平台的应用程序(一次编写,多平台编译和运行)
  • 模块化和可扩展,可应用于嵌入式到企业级程序
  • 提供全面,易懂的编程接口
  • 使用C++语言,快速且高效
  • Poco崇尚简易
  • 在设计,代码风格和文档上保持一致
  • Poco强调代码质量,包括可读性,综合性,一致性,编码风格和可测试性
  • Poco使得C++编程更加容易

指导方针

  • 高度关注代码质量,编码风格,一致性,可读性
  • 高度关注测试
  • 注重实用性
  • 基于现有的,可靠的组件开发

1、先用Vsiual编译Poco库,这个就不用多解释了,Poco里面有visualStudio的工程,千万不要使用MingW编译Poco库,这个比较麻烦,浪费时间还不一定成功。

Visual Studio中设置下Poco的include,lib以及可执行文件的路径

其代码如下:
#define  _CRT_SECURE_NO_WARNINGS

#include 
#include 
#include 
#include 

#include <Poco/Timer.h>
#include <Poco/Thread.h>
#include <Poco/File.h>
#include<Poco/Timestamp.h>


class TestTimerExample
{
public:
    void onTimer(Poco::Timer& t)//
    {
        std::cout << "每隔1秒打印1次" << std::endl;
    }
};

int main(int argc, char* argv[])
{
    TestTimerExample te;
    Poco::Timer timer(1000, 1000);   //1秒后开始,每隔1秒执行一次
    timer.start(Poco::TimerCallback(te, &TestTimerExample::onTimer));
    std::cout << "Hello World!\n";
    std::this_thread::sleep_for(std::chrono::seconds(10));
}

执行结果如下:


相关文章

java定时器Timer 你还记得吗?

java已经帮我们写了定时器的任务,我们只需要按照API的文档来实现就行。首先我们看下java帮我们实现的定时器类:java.lang.Timer我们先来看下Timer的构造方法:我们可以看到Time...

java编程语言中定时器_v1

大家好,欢迎来到人工智复,我们的使命是互相勉励,坚定信念,认准自己的方向,坚持到底。public class ApplicationBlx { private static Timer ti...

Java定时任务大盘点:发工资也能“指日可待”

作者:京东保险 孙昊宇引子:“指日可待”让我们先从一个成语开始,“指日可待”。没错,我说的就是定时任务。“指日可待”: 为任务指定好日程,就可以安心等待任务执行。在实际场景中,我们往往需要在特定时间做...

java总结:8.正则表达式,匹配一天的指定时间段跑定时器

定时时间(每天早上3点到晚上23点,每5分钟执行):0 1/5 3-22 ? * * * 举例操作:定时器每20分钟执行一次,每天从3点执行,到5点结束 0 1/20 3-4 ? * * 执行的结...

C#实现定时器的几种方案

前几天写了一篇java的定时器方案,应小伙伴的要求,今天这里一下c#实现定时器的方案。 在C#里关于定时器类就有三个1、System.Windows.Forms.Timer2、System.Threa...

Java 线程的生命周期及各阶段状态

每个事物都有其生命周期,也就是事物从出生开始到最终消亡这中间的整个过程;在其整个生命周期的历程中,会有不同阶段,每个阶段对应着一种状态,比如:人的一生会经历从婴幼儿、青少年、青壮年、中老年到最终死亡,...