<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Maybe that last bit would be a bit more clear.<div><br></div><div>The first qDebug statement writes out — I have it set to give the time when it is written as well — but the qDebug does not write until after the heavy task is completed in backgroundtaskmanager.  Any other time, this performs as expected, ticking along every second.</div><div><br></div><div>-Jason<br><div>
<div><div style="color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><b><i><span style="font-size: 13pt; font-family: Ubuntu, sans-serif; color: rgb(146, 208, 80);">- - - - - - - - - - - - - - - - - - - - - - -<o:p></o:p></span></i></b></div><div style="color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><b><i><span style="font-size: 13pt; font-family: Ubuntu, sans-serif; color: rgb(127, 127, 127);">Jason R. </span></i></b><b><i><span style="font-size: 13pt; font-family: Ubuntu, sans-serif; color: rgb(146, 208, 80);">Kretzer<o:p></o:p></span></i></b></div><div style="color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><b><i><span style="font-size: 10pt; font-family: Ubuntu, sans-serif; color: rgb(38, 38, 38);"> </span></i></b></div><div style="color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><b><i><span style="font-size: 10pt; font-family: Ubuntu, sans-serif; color: rgb(38, 38, 38);">Application Developer<o:p></o:p></span></i></b></div><div style="color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><i><span style="font-size: 10pt; font-family: Ubuntu, sans-serif; color: rgb(127, 127, 127);">Google # 606-887-9011<o:p></o:p></span></i></div><div style="color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><i><span style="font-size: 10pt; font-family: Ubuntu, sans-serif; color: rgb(127, 127, 127);">Cell # 606-792-0079<o:p></o:p></span></i></div><div style="color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><i><span style="font-size: 10pt; font-family: Ubuntu, sans-serif; color: rgb(127, 127, 127);"><a href="mailto:Jason@gocodigo.com" style="color: purple;"><span style="color: blue;">Jason@gocodigo.com</span></a><b><o:p></o:p></b></span></i></div><div style="color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><b><i><span style="font-size: 10pt; font-family: Ubuntu, sans-serif; color: rgb(127, 127, 127);"> </span></i></b></div><div style="color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><b><i><span style="font-size: 10pt; font-family: Ubuntu, sans-serif; color: rgb(127, 127, 127);">“quidquid latine dictum sit altum videtur”<o:p></o:p></span></i></b></div><div style="color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><b><i><span style="font-size: 10pt; font-family: Ubuntu, sans-serif; color: rgb(127, 127, 127);"> </span></i></b></div><br class="Apple-interchange-newline"><span><img height="76" width="192" apple-inline="yes" id="277A7D83-8D87-4F05-ACEE-CEE665CA04B9" apple-width="yes" apple-height="yes" src="cid:image001.png@01CECA4D.CA4030A0"></span>
</div>
</div><br><div><div>On Dec 2, 2013, at 2:14 PM, Jason Kretzer <<a href="mailto:Jason@gocodigo.com">Jason@gocodigo.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><meta http-equiv="Content-Type" content="text/html charset=windows-1252"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Good Day,<div><br></div><div>I have in my application, two classes.  When the application starts up, one of the classes -backgroundtaskmanager - gets instantiated.  In the constructor, a QTimer is started to timeout every 5 minutes and call runTasks.  The instantiation is then moved to a separate thread so that it can run without impacting the rest of the application.</div><div><br></div><div>Here are the contents of the constructor.</div><div><br></div><div><div><font face="Consolas">QTimer* timer = new QTimer(this);</font></div><div><font face="Consolas">    connect(timer, SIGNAL(timeout()), this, SLOT(runTasks()));</font></div><div><font face="Consolas">    timer->start(300000); //fiveminutes</font></div><div><font face="Consolas">    thread = new QThread();</font></div><div><font face="Consolas">    this->moveToThread(thread);</font></div><div><font face="Consolas">    thread->start();</font></div><div><font face="Consolas">    </font></div></div><div><br></div><div>The second class -player- is instantiated in the main thread.  Once it is instantiated, it begins doing other tasks.  Basically, a method is called with the following code.  This code is designed to make the while loop delay for one second before executing the rest of the loop (one second-ish, I know it is not perfect but it has good enough resolution for what I need).  </div><div><br></div><div><br></div><div><div><font face="Consolas">while(!taskQueue.isEmpty()) {</font></div><div><font face="Consolas">        qDebug() << “BEFORE QEVENTLOOP”;</font></div><div><font face="Consolas"><span class="Apple-tab-span" style="white-space:pre">  </span>QEventLoop wait1Sec;</font></div><div><font face="Consolas">        QTimer::singleShot(1000, &wait1Sec,SLOT(quit()));</font></div><div><font face="Consolas">        wait1Sec.exec();</font></div><div><font face="Consolas"><span class="Apple-tab-span" style="white-space:pre">     </span>aDebug() << “AFTER QEVENTLOOP”;<span class="Apple-tab-span" style="white-space:pre">       </span></font></div><div><font face="Consolas"><br></font></div><div><font face="Consolas"><span class="Apple-tab-span" style="white-space:pre">      </span>QList<Task*> instances; </font></div><div><font face="Consolas"><span class="Apple-tab-span" style="white-space:pre">       </span> for(int t=seconds; t>previousTime; t—) { </font></div><div><font face="Consolas"><span class="Apple-tab-span" style="white-space:pre">   </span> <span class="Apple-tab-span" style="white-space:pre">      </span>QList<Task*> vals = taskQueue.values(t); </font></div><div><font face="Consolas"><span class="Apple-tab-span" style="white-space:pre">              </span> while(!vals.isEmpty()) { </font></div><div><font face="Consolas"><span class="Apple-tab-span" style="white-space:pre">                      </span> instances.insert(0, vals.takeLast()); </font></div><div><font face="Consolas"><span class="Apple-tab-span" style="white-space:pre">         </span> } </font></div><div><font face="Consolas"><span class="Apple-tab-span" style="white-space:pre">             </span> taskQueue.remove(t); </font></div><div><font face="Consolas"><span class="Apple-tab-span" style="white-space:pre">  </span> } </font></div><div><font face="Consolas"><span class="Apple-tab-span" style="white-space:pre">     </span> previousTime = seconds; </font></div><div><font face="Consolas"><span class="Apple-tab-span" style="white-space:pre">       </span> miliSeconds = QDateTime::currentMSecsSinceEpoch() - today.toMSecsSinceEpoch(); </font></div><div><font face="Consolas"><span class="Apple-tab-span" style="white-space:pre">        </span> seconds = miliSeconds/1000;</font></div><div><font face="Consolas">}</font></div></div><div><br></div><div>NOTE:  the two sets of tasks these do are not related.</div><div><br></div><div>So, anyway, every 5 minutes the tasks in backgroundtaskmanager are run.  Some of these tasks can take up to a minute.  When the backgroundtaskmanager class runs a task that does take this long (remember it is in a separate thread), the player class code above gets hung in what appears to be the inside of the QEventLoop.  The qDebug statements don’t write out until the tasks in the backgroundtaskmanager are finished.  Then it rushes through to catch up.</div><div><br></div><div>My question is, am I correctly doing this at all?  Is this the proper use of a QEventLoop?</div><div><br></div><div>Thanks!</div><div><br></div><div>-Jason</div><div><br><div>
<div><div style="font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><b><i><span style="font-size: 13pt; font-family: Ubuntu, sans-serif; color: rgb(146, 208, 80);">- - - - - - - - - - - - - - - - - - - - - - -<o:p></o:p></span></i></b></div><div style="font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><b><i><span style="font-size: 13pt; font-family: Ubuntu, sans-serif; color: rgb(127, 127, 127);">Jason R. </span></i></b><b><i><span style="font-size: 13pt; font-family: Ubuntu, sans-serif; color: rgb(146, 208, 80);">Kretzer<o:p></o:p></span></i></b></div><div style="font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><b><i><span style="font-size: 10pt; font-family: Ubuntu, sans-serif; color: rgb(38, 38, 38);"> </span></i></b></div><div style="font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><b><i><span style="font-size: 10pt; font-family: Ubuntu, sans-serif; color: rgb(38, 38, 38);">Application Developer<o:p></o:p></span></i></b></div><div style="font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><i><span style="font-size: 10pt; font-family: Ubuntu, sans-serif; color: rgb(127, 127, 127);">Google # 606-887-9011<o:p></o:p></span></i></div><div style="font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><i><span style="font-size: 10pt; font-family: Ubuntu, sans-serif; color: rgb(127, 127, 127);">Cell # 606-792-0079<o:p></o:p></span></i></div><div style="font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><i><span style="font-size: 10pt; font-family: Ubuntu, sans-serif; color: rgb(127, 127, 127);"><a href="mailto:Jason@gocodigo.com" style="color: purple;"><span style="color: blue;">Jason@gocodigo.com</span></a><b><o:p></o:p></b></span></i></div><div style="font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><b><i><span style="font-size: 10pt; font-family: Ubuntu, sans-serif; color: rgb(127, 127, 127);"> </span></i></b></div><div style="font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><b><i><span style="font-size: 10pt; font-family: Ubuntu, sans-serif; color: rgb(127, 127, 127);">“quidquid latine dictum sit altum videtur”<o:p></o:p></span></i></b></div><div style="font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><b><i><span style="font-size: 10pt; font-family: Ubuntu, sans-serif; color: rgb(127, 127, 127);"> </span></i></b></div><br class="Apple-interchange-newline"><span><image001.png></span>
</div>
</div><br></div></div>_______________________________________________<br>Interest mailing list<br><a href="mailto:Interest@qt-project.org">Interest@qt-project.org</a><br>http://lists.qt-project.org/mailman/listinfo/interest<br></blockquote></div><br></div></body></html>