В Qt приложении пи запуске таймеров и в основном и в отдельном потоке, программа падает. Можно ли это делать и как сделать корректно?
Падает при нескольких поочердных срабатываниях таймеров с такой ошибкой:
ASSERT: "bytes <= bufferSize" in file tools\qringbuffer.cpp, line 74
Текст программы:
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
MainObject* mObject=new MainObject();
QThread* tThread=new QThread;
SecondObject* sObject=new SecondObject();
QObject::connect(tThread, SIGNAL(started()) , sObject, SLOT(startTimer()));
sObject->moveToThread(tThread);
tThread->start();
return a.exec();
}
MainObject::MainObject(QObject *parent) : QObject(parent)
{
mTimer=new QTimer(this);
connect(mTimer, SIGNAL(timeout()), this, SLOT(mSlot()));
mTimer->start(500);
qDebug()<<"this->thread="<<this->thread()<<"mTimer->thread()="<<mTimer->thread();
}
void MainObject::mSlot()
{
qDebug()<<"this->thread="<<this->thread();
}
SecondObject::SecondObject(QObject *parent) : QObject(parent)
{
qDebug()<<"this->thread="<<this->thread();
}
void SecondObject::sSlot()
{
qDebug()<<"thread="<<this->thread();
}
void SecondObject::startTimer()
{
QTimer* sTimer=new QTimer(this);
qDebug()<<"this->thread="<<this->thread()<<"sTimer->thread()="<<sTimer->thread();
connect(sTimer, SIGNAL(timeout()), this, SLOT(sSlot()));
sTimer->start(1000);
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
хорошего дня Существует открытый код браузера Mozilla FireFoxКогда мы заходим на какой-либо сайт, то загружается множество jscript
Чтобы открыть скомпилированную в g++ программу, вынесенную с помощью -о output в отдельный файл, надо в терминале набирать/output
Проблема в следующемМне нужно чтобы в m в методе TakeElement попало число которое хранится в динамической структуре