Dlib库【4】——定时器Timer,线程对象
2017-05-18 16:11
183 查看
配置Dlib环境: 链接
1.定时器Timer
Timer可以规律地循环调用特定的功能函数
//可以定时地开启线程(例如过30ms打开第二个线程而不把主线程阻塞住?)
pause可以暂停,直观上没有看出特别重要的作用…………之后如果用到了再来丰润吧
// The contents of this file are in the public domain. See LICENSE_FOR_EXAMPLE_PROGRAMS.txt
/*
This is an example illustrating the use of the threaded_object
from the dlib C++ Library.
This is a very simple example. It creates a single thread that
just prints messages to the screen.
*/
Timer可以规律地循环调用特定的功能函数
//可以定时地开启线程(例如过30ms打开第二个线程而不把主线程阻塞住?)
// The contents of this file are in the public domain. See LICENSE_FOR_EXAMPLE_PROGRAMS.txt /* This is an example illustrating the use of the timer object from the dlib C++ Library. The timer is an object that calls some user specified member function at regular intervals from another thread. */ #include <dlib/timer.h> #include <dlib/misc_api.h> // for dlib::sleep #include <iostream> using namespace dlib; using namespace std; // ---------------------------------------------------------------------------------------- class timer_example { public: void action_function() { // print out a message so we can see that this function is being triggered cout << "action_function() called" << endl; } }; // ---------------------------------------------------------------------------------------- int main() { //直观上timer的主要作用是可以精确的过一段时间再开第二个线程 timer_example e; // Here we construct our timer object. It needs two things. The second argument is // the member function it is going to call at regular intervals and the first argument // is the object instance it will call that member function on. timer<timer_example> t(e, &timer_example::action_function); // Set the timer object to trigger every second t.set_delay_time(1000); // Start the timer. It will start calling the action function 1 second from this call // to start. t.start(); // Sleep for 10 seconds before letting the program end. dlib::sleep(10000); //dlib::sleep(10000); // The timer will destruct itself properly and stop calling the action_function. } // ----------------------------------------------------------------------------------------
2.线程对象
pause可以暂停,直观上没有看出特别重要的作用…………之后如果用到了再来丰润吧// The contents of this file are in the public domain. See LICENSE_FOR_EXAMPLE_PROGRAMS.txt
/*
This is an example illustrating the use of the threaded_object
from the dlib C++ Library.
This is a very simple example. It creates a single thread that
just prints messages to the screen.
*/
#include <iostream> #include <dlib/threads.h> #include <dlib/misc_api.h> // for dlib::sleep using namespace std; using namespace dlib; class my_object : public threaded_object { public: my_object() { // Start our thread going in the thread() function start(); } ~my_object() { // Tell the thread() function to stop. This will cause should_stop() to // return true so the thread knows what to do. stop(); // Wait for the thread to stop before letting this object destruct itself. // Also note, you are *required* to wait for the thread to end before // letting this object destruct itself. wait(); } private: void thread() { // This is our thread. It will loop until it is told that it should terminate. while (should_stop() == false) { cout << "hurray threads!" << endl; dlib::sleep(500); } } }; int main() { // Create an instance of our threaded object. my_object t; dlib::sleep(4000); // Tell the threaded object to pause its thread. This causes the // thread to block on its next call to should_stop(). t.pause(); dlib::sleep(3000); cout << "starting thread back up from paused state" << endl; // Tell the thread to unpause itself. This causes should_stop() to unblock // and to let the thread continue. t.start(); dlib::sleep(4000); // Let the program end. When t is destructed it will gracefully terminate your // thread because we have set the destructor up to do so. }
相关文章推荐
- java中使用线程实现Timer(定时器)原理和源码
- java中使用线程实现Timer(定时器)原理和源码
- 多线程编程(16) - 多线程同步之 WaitableTimer (等待定时器对象)[续二]
- 多线程编程(16) - 多线程同步之 WaitableTimer (等待定时器对象)[续二]
- 多线程编程(15) - 多线程同步之 WaitableTimer (等待定时器对象)[续]
- java中使用线程实现Timer(定时器)原理和源码
- 多线程同步之 WaitableTimer (等待定时器对象)[续二]
- 多线程编程(14) - 多线程同步之 WaitableTimer (等待定时器对象)
- 定时器与多线程 SetTimer and Multi-Thread 每个线程独立使用一个定时器
- 多线程同步之 WaitableTimer (等待定时器对象)
- java中使用线程实现Timer(定时器)原理和源码
- java中使用线程实现Timer(定时器)原理和源码
- java中使用线程实现Timer(定时器)原理和源码
- 多线程编程(15) - 多线程同步之 WaitableTimer (等待定时器对象)[续]
- java中使用线程实现Timer(定时器)原理和源码
- java中使用线程实现Timer(定时器)原理和源码
- java中使用线程实现Timer(定时器)原理和源码
- java中使用线程实现Timer(定时器)原理和源码
- asp.net 线程定时器(Timer )的使用
- 多线程同步之 WaitableTimer (等待定时器对象)[续]