На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела *nix / gcc / Eclipse / Qt / wxWidgets / GTK+
  • При создании темы ОБЯЗАТЕЛЬНО указывайте версию тулкита / библиотеки / компилятора.
  • Перед тем как задать вопрос, сформулируйте его правильно, чтобы вас могли понять.
  • Нарушение Правил может повлечь наказание со стороны модераторов.


Полезные ссылки:
user posted image Boost по-русски
user posted image Qt по-русски
Модераторы: archimed7592
  
> Не удаленный правильно динамический таймер. , Qt Creator v.3.5.x.
    В Qt таймеры могут быть только динамическими. Если я сделаю new, запущу его, но не сделаю delete при закрытии формы - он будет продолжать тикать или тикать+выполнять строки своего кода?
      кто мешает сделать таймеру стоп? и какое отношение созданный по new класс(таймер) имеет к какой-то там форме?
        Вопрос принципиальный. Не имеет - об этом и речь. Можно закрыть все формы; а может и из проекта выйти - а он будет тикать вхолостую?
          ну если ты выйдешь из проекта, то очевидно, что он освободит все занятые ресурсы.

          Добавлено
          да и вообще new/delete нынче не в моде.

          Добавлено
          юзай unique_ptr/shared_ptr и будет тебе щастье :)
            Цитата _lcf_ @


            Почему освободит, если delete не был произведен? Эта память будет утеряна.
              Цитата Сергей85 @
              В Qt таймеры могут быть только динамическими.

              Это кто такое сказал? :blink:

              Вот кусок кода, пример реализации простейшей задержки:
              ExpandedWrap disabled
                QEventLoop Loop;
                QTimer Timer;
                connect(&Timer, SIGNAL(timeout()), &Loop, SLOT(quit()));
                Timer.setSingleShot(true);
                Timer.start(1000);
                Loop.exec();
                Цитата Сергей85 @
                Почему освободит, если delete не был произведен? Эта память будет утеряна.

                что значит утеряна? :) когда какой-то процесс делает new, система выделяет память и помечает за каким процессом она числится, когда процесс пропадает из списка запущенных вся память, которая числилась за ним, считается свободной и может быть выдана другому процессу. утечка может быть только если процесс криво закрылся/упал, то есть никаких окон нет, а в списке запущенных процессов числится.
                  Вот такие ситуациии я и имею в виду. Вот, он остался в процессах. Таймер будет тикать в этом процессе, так? Значит, всек-таки, такое возиможно.
                    Цитата Сергей85 @
                    Таймер будет тикать в этом процессе, так?

                    Таймер - это кусок кода процесса. Нет процесса - нет кода который "тикает" :)
                    Скрытый текст
                    Не нужно только путать с аппаратным таймером, тот начинает тикать сразу после включения компа, и программный код ему не нужен.
                      хм, ну это кагбэ очевидно. но вообще при кривом закрытии процесса, в общем и целом, неизвестно какая часть кода продолжит "жить".
                        Цитата _lcf_ @
                        но вообще при кривом закрытии процесса

                        Странная постановка вопроса :) Закрытие процесса - это корректно завершенная операция. А вот если ОС не смогла закрыть процесс - то это вопрос к ОС (ну или к драйверописателям). Не представляю как можно "незакрыть" пользовательский процесс. Разве только что "зомби-процессы" никсов - так и там это штатная корректная ситуация.
                        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                        0 пользователей:


                        Рейтинг@Mail.ru
                        [ Script execution time: 0,0333 ]   [ 16 queries used ]   [ Generated: 19.04.24, 01:06 GMT ]