crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> ошибка при завершении программы использующей таймер
Litkevich Yuriy
  опции профиля:
сообщение 30.4.2010, 13:14
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Никак не могу понять, как же правильно работать со встроенным в QObject таймером.

В данный момент работа, схематично, выглядит так:
class MyClass : public QObject
{
    Q_OBJECT
public:
    MyClass(QObject *parent):QObject(parent){}
    ~MyClass(){}
    
    void method();
    
protected:    
    void timerEvent(QTimerEvent *event);

private:
    int timerId;
}

void MyClass::method()
{
    timerId = startTimer(400);
}

void MyClass::timerEvent(QTimerEvent *event)
{
    if (timerId != event->timerId())
        return;
    
    killTimer(timerId);
    // что-то ещё делаем
}
есть несколько объектов разных классов, которые создаются по цепочке, один в другом. В каждом может быть таймер и он используется по одной и той же схеме.
При завершении программы виндовоз показывает сообщение об ошибке ("Память не может быть read")

Такая ситуация наблюдается у всех моих программ, которые используют таймер встроенный в QObject. И в разных версиях Qt, начиная с Qt 4.3.5
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.4.2024, 23:49