Poco::Util::Timer 中有关schedule和scheduleAtFixedRate的区别

一、此处的函数原型为:

(1) void scheduleAtFixedRate(
TimerTask::Ptr pTask, long delay, long interval );
(2)void schedule(
TimerTask::Ptr pTask, Poco::Clock clock, long interval );

二、总结: 不懂得话可以用下面根据下面代码的结果进行对照分析;

(1) 当 执行时间 < 间隔时间时,则两函数功能一致,没有区别;
(2) 执行时间> 间隔时间 :
a. 调用schedule 函数的计时器,会在上一个计时器执行完后再等待 间隔时间的时长,它才开始工作;
b. 调用scheduleAtFixedRate 函数的计时器,它会在上一个计时器执行结束后立刻执行;

备注:
计时器所执行的时间为执行时间;周期性计时器唤醒时间为间隔时间。

三、代码:

#include
#include
#include


#include"Poco/DirectoryIterator.h"
#include"Poco/Path.h"
#include"Poco/File.h"
#include"Poco/Stopwatch.h"
#include"Poco/Util/TimerTask.h"
#include"Poco/Util/Timer.h"

using namespace std;
using namespace Poco;
using Poco::Util::Timer;
using Poco::Util::TimerTask;
using Poco::Path;
using Poco::File;

class MyApp :public Util::TimerTask
{
	public:
		virtual	void run()
		{
			cout<<"HLlo  timer"< 间隔时间 :  本次计时器的启动推迟到 上次计时器执行完后再立刻执行,记住,是立刻启动
	//	2 执行时间 <间隔时间 : 本次计时器以间隔时间为准启动
	
//	timer.schedule(app,5000,3000);
	//前一个函数是 当执行时间 > 间隔时间时,上一次执行完后本次立刻执行,
	//1 而本函数在执行时间>间隔时间时: 当上一次计时器执行结束后 再等待 间隔时间  ,然后再立刻执行;
	//2 当执行时间 <间隔时间 :以间隔时间为准周期启动	
	int i =00000;
	while(i<1000000)
	{
		cout<<"1" <

你可能感兴趣的:(Poco,c++)