Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.133.131.168] |
|
Сообщ.
#1
,
|
|
|
В Qt таймеры могут быть только динамическими. Если я сделаю new, запущу его, но не сделаю delete при закрытии формы - он будет продолжать тикать или тикать+выполнять строки своего кода?
|
Сообщ.
#2
,
|
|
|
кто мешает сделать таймеру стоп? и какое отношение созданный по new класс(таймер) имеет к какой-то там форме?
|
Сообщ.
#3
,
|
|
|
Вопрос принципиальный. Не имеет - об этом и речь. Можно закрыть все формы; а может и из проекта выйти - а он будет тикать вхолостую?
|
Сообщ.
#4
,
|
|
|
ну если ты выйдешь из проекта, то очевидно, что он освободит все занятые ресурсы.
Добавлено да и вообще new/delete нынче не в моде. Добавлено юзай unique_ptr/shared_ptr и будет тебе щастье |
Сообщ.
#5
,
|
|
|
Цитата _lcf_ @ Почему освободит, если delete не был произведен? Эта память будет утеряна. |
Сообщ.
#6
,
|
|
|
Цитата Сергей85 @ В Qt таймеры могут быть только динамическими. Это кто такое сказал? Вот кусок кода, пример реализации простейшей задержки: QEventLoop Loop; QTimer Timer; connect(&Timer, SIGNAL(timeout()), &Loop, SLOT(quit())); Timer.setSingleShot(true); Timer.start(1000); Loop.exec(); |
Сообщ.
#7
,
|
|
|
Цитата Сергей85 @ Почему освободит, если delete не был произведен? Эта память будет утеряна. что значит утеряна? когда какой-то процесс делает new, система выделяет память и помечает за каким процессом она числится, когда процесс пропадает из списка запущенных вся память, которая числилась за ним, считается свободной и может быть выдана другому процессу. утечка может быть только если процесс криво закрылся/упал, то есть никаких окон нет, а в списке запущенных процессов числится. |
Сообщ.
#8
,
|
|
|
Вот такие ситуациии я и имею в виду. Вот, он остался в процессах. Таймер будет тикать в этом процессе, так? Значит, всек-таки, такое возиможно.
|
Сообщ.
#9
,
|
|
|
Цитата Сергей85 @ Таймер будет тикать в этом процессе, так? Таймер - это кусок кода процесса. Нет процесса - нет кода который "тикает" Скрытый текст Не нужно только путать с аппаратным таймером, тот начинает тикать сразу после включения компа, и программный код ему не нужен. |
Сообщ.
#10
,
|
|
|
хм, ну это кагбэ очевидно. но вообще при кривом закрытии процесса, в общем и целом, неизвестно какая часть кода продолжит "жить".
|
Сообщ.
#11
,
|
|
|
Цитата _lcf_ @ но вообще при кривом закрытии процесса Странная постановка вопроса Закрытие процесса - это корректно завершенная операция. А вот если ОС не смогла закрыть процесс - то это вопрос к ОС (ну или к драйверописателям). Не представляю как можно "незакрыть" пользовательский процесс. Разве только что "зомби-процессы" никсов - так и там это штатная корректная ситуация. |