170 похожих чатов

Всем привет! Подскажите, пожалуйста, как организовать (в vs2015) выполнение определенного кода

через заданные промежутки времени?

27 ответов

12 просмотров

Цикл, в нём измерение времени, и вызов.

#include <future> #include <chrono> #include <thread> int main() { using namespace std::chrono_literals; auto period = 2s; auto times = 2; auto f = std::async(std::launch::async, [period, times] mutable { for( ;times; --times) { auto awaik = std::chrono::high_resolution_clock::now() + period; // doing something std::this_thread::sleep_for(1s); std::this_thread::sleep_until(awaik); } }); f.get(); }

Anton- Автор вопроса
Anatoly Shirokov
#include <future> #include <chrono> #include <thre...

А зачем std::this_thread::sleep_for(1s);? вроде бы нужно только std::this_thread::sleep_until(awaik);

Anton
А зачем std::this_thread::sleep_for(1s);?...

показать видимость деятельности, а так // doing something

Anton- Автор вопроса
Anatoly Shirokov
#include <future> #include <chrono> #include <thre...

Здравствуйте! Сделал, как Вы посоветовали, но почему-то выполнение основной проги начинается только после завершения доп.потока...

Anton
да

Логично, потому что f.get() – блокирующий вызов

Anton
а как надо?

Ну вызови его после основного кода

Anton- Автор вопроса
Liber Azerate
Ну вызови его после основного кода

тогда он запуститься только после завершения основного кода...

Anton- Автор вопроса
Liber Azerate
Нет

только проверил

Anton
только проверил

Поиграйся с этим, подумай: #include <iostream> #include <thread> #include <future> #include <chrono> int main(int argc, char *argv[]) { using namespace std::chrono_literals; auto f = std::async(std::launch::async, [](){ std::cout << "Hello, async\n"; }); std::this_thread::sleep_for(1s); std::cout << "Hello, main\n"; f.get(); }

Danya🔥
Наверное sleep надо было а лямбду

Не, почитай тред. Человек мне говорил, мол, если вызвать get() после кода мейна, то асинк только тогда исполняться начнёт

Serhii Herashchenko
Ну это если лаунч::деферред

Ну а у нас ни в коем случае не так

Liber Azerate
Не, почитай тред. Человек мне говорил, мол, если в...

Такое возможно, если политику не передавать, то в некоторых имплементациях там по умолчанию там дефферед

Danya🔥
Такое возможно, если политику не передавать, то в ...

Да даже если передавать асинк политику возможно

Anton- Автор вопроса
Liber Azerate
Поиграйся с этим, подумай: #include <iostream> #in...

Лучше объясню, что нужно, а то непонятки пошли. В main крутится основной код, а в доп.поток я хотел вынести считывание по таймеру данных с юсб-железки

Anton- Автор вопроса
Liber Azerate
И?

в твоем примере где должен быть основной код? если до f.get(); доп.поток не запустится, а после запуска будет ожидать его завершения или я что-то не понимаю?

Anton
в твоем примере где должен быть основной код? если...

Основной код – это и есть вывод в мейне

Anton- Автор вопроса
Liber Azerate
Да, ты не понимаешь. Запусти этот код.

все заработало, спасибо! оказалось, железка глюканула и массив был пустой, а я думал что доп.поток не стартует...

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта