Как вызывать разные методы с собственными интервалами выборки внутри класса, используя другой класс TimerInterval, работC++

Программы на C++. Форум разработчиков
Anonymous
Как вызывать разные методы с собственными интервалами выборки внутри класса, используя другой класс TimerInterval, работ

Сообщение Anonymous »

Я пытаюсь использовать ту же идею, которая предложена в качестве ответа на мой вопрос в этом посте. Цель состоит в том, чтобы реализовать класс, который будет вызывать 3 разных метода с собственными интервалами внутри метода start_trigger.
Следующий пример кода скомпилирован успешно, но он не работает логически, поскольку жизнь время объектов IntervalTimer ограничено методом start_process(), а не временем жизни класса.
Поэтому мое решение решить эту проблему — определить 3 переменные IntervalTimer как член класса, а затем инициализировать их. внутри метода start_processing.
Метод start_process является общедоступным и может быть вызван через объект MyTestClass.
Вот код, который будет компилируется без проблем, но он не вызывает повторно три метода (метод1, метод2 и метод3 с заданными интервалами).

Код: Выделить всё

#include 
#include 
#include 
#include 
#include 
#include 

namespace asio = boost::asio;
using namespace std::chrono_literals;
using duration            = std::chrono::steady_clock::duration;
static constexpr auto now = std::chrono::steady_clock::now;
using boost::system::error_code;
using namespace std;

enum MethodTypes { FIRST = 0, SECOND = 1, THIRD = 2 };

using Callback = std::function;
//template
struct IntervalTimer {
IntervalTimer(asio::any_io_executor ex, duration interval, Callback callback)
: interval_(interval)
, cb_(std::move(callback))
, tim_(ex, interval_)
{
loop();
}

private:
void loop() {
while (tim_.expiry() 

Подробнее здесь: [url]https://stackoverflow.com/questions/78314381/how-to-call-different-methods-with-their-own-sample-intervals-inside-a-class-usi[/url]

Вернуться в «C++»