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

Здравствуйте! Вопрос, как сделать таймер, где я задаю время и

он, через опред время, вызовет функцию. Вижу варианты с chrono и созданием потока для этого. Разве это не жирно, отдельный поток для этого. А если их много? Есть какой-то удобный способ работы? Что бы был как Qtimer? Куда мне копать?

16 ответов

13 просмотров

Один из вариантов. https://stackoverflow.com/questions/26790309/execute-function-in-c-after-a-delay-without-using-sleep

Андрей-Иванов Автор вопроса
Дмитрий 🎮
Один из вариантов. https://stackoverflow.com/que...

Ну так это отдельный поток, что мне кажется жирно

А кто сказал что QTimer без потока ?

Андрей-Иванов Автор вопроса
Александр Водянников
А кто сказал что QTimer без потока ?

Какую-то статью читал, вот и стало интересно а как он тогда делает? У меня linux

Андрей-Иванов Автор вопроса
Aleksander Spichak
Через взаимодействие с ОС

А как? Нет примера? И шо это такое вообще

Андрей Иванов
А как? Нет примера? И шо это такое вообще

Ну говоришь операционной системе "выхзови функцию через N секунд" и она тебя слушается

Александр Водянников
Какая послушная система ))

Ну все не так прям просто, но в целом да)

Вариантов нет без потока это вообще не сделать

А с потоком - Это тоже не сделать потому что твой таймер будет вызывать кот из другого потока

Ilya Zviagin
А с потоком - Это тоже не сделать потому что твой ...

Можно сделать цикл как в игровых движках. Все объекты будут обновляться, в том числе объект таймер, он будет увеличивать свой внутренний счетчик и когла достигнет вызовет указатель на функцию. Но с таким подходом все приложение должно быть внутри этого цикла, то есть по сути это будет работать как игровой движок. Тогда можно и без потоков

Андрей-Иванов Автор вопроса
Андрей Иванов
Ну а почему бы и нет, спасибо

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

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

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

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
32
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
25
Книга Юрова В.И пойдёт для обучения?
Botsman
24
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
> Примечательно, что новый владелец удаляет из GitHub любые жалобы, указывающие на подозрительную активность или смену владельца, и, видимо, рассчитывает на то, что пользовате...
Alex Sherbakov
1
а мы ещё не созрели до того, чтобы создать отдельный чатик про настройку редакторов?
Cheese Syrowiecki
16
И ещё вопрос: можно ли типа как на дос как-то запариться и с помощью прерываний выводить текст, вместо функции printf ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
34
Всем привет! У меня почему-то по-разному отображается TListView в Debug и Release режимах (FireMonkey)! При запуске под Win приложения TListView заливается программо. в Debug ...
Александр COM
8
Ладно, ещё тупого спрошу. Код должен банально вывести значение регистра на консоль, на деле же не выводя ничего, просто оставляя нерабочую консоль (открыта, ничего не написан...
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
25
Hey there Which is the best Linux destro for developers (coding)? To my research on reddit, they said Linux mint is good for mid level spec and Ubuntu for high Lev hardwar...
Wiz 🪄
11
Карта сайта