Andrey, you are right if I'm not using the signals/slots, but calling it directly causes it to run in current thread. It works just fine now, thanks.
Denis, I did check out QtConcurrent::run(), but since I return void from the function and I have to call the function multiple times possibly in the same thread so that I can append to QXmlStreamReader's data, I think it is easier to just use QThread in this case. However thank you for your input, I'm sure I will make use of QtConcurrent in the QFuture. (pun intended) ;) On 29 May 2014 12:23, Krisztian Olah <fasza2mob...@gmail.com> wrote: > Thanks Denis, I'll look into QtConcurrent + QFutureWatcher tonight when > I'll have time. I will also consult pthread's documentation after comparing > the two approaches. > > Thanks again > Kris > > > On 29 May 2014 11:01, Denis Zalevskiy <denis.zalevs...@jollamobile.com> > wrote: > >> On Thursday 29 May 2014 13:55:40 Denis Zalevskiy wrote: >> > To run parser in parallel just to get results in the main thread it is >> > better to use QtConcurrent::run() + QFutureWatcher. >> > >> >> Also, to set priority I guess you can use posix pthread functions, smth. >> like >> >> ::pthread_setschedprio(::pthread_self(), SCHED_IDLE); >> >> - denis >> >> > - denis >> > >> > > > Thanks again >> > > > Kris >> > > > >> > > > >> > > > On 28 May 2014 06:16, Andrey Kozhevnikov <coderusin...@gmail.com >> > > > >> > > > <mailto:coderusin...@gmail.com>> wrote: >> > > > it can't "doesn't help much". you initializing thread wrong. >> > > > >> > > > simple threading way is: >> > > > >> > > > MyXmlParser *parser = new MyXmlParser(xmlDocument); >> > > > QThread *thread = new QThread(parser); >> > > > parser->moveToThread(thread); >> > > > QObject::connect(thread, SIGNAL(started()), parser, >> SLOT(parse())); >> > > > QObject::connect(parser, SIGNAL(parseComplete(QVariantMap)), >> this, >> > > > SLOT(onParseComplete(QVariantMap))); >> > > > thread->start(); >> > > > >> > > > 28.05.2014 03:24, Krisztian Olah ?????: >> > > >> Hi list, >> > > >> >> > > >> I have a rather large xml file to parse and it causes the UI >> to >> > > >> >> > > >> freeze, I assingned the parser to a different thread, but it >> > > >> doesn't help much. According to the Qt documentation >> > > >> QThread::setPriority() doesn't work on Linux, is there some >> kind >> > > >> of workaround that could be used? >> > > >> >> > > >> Thanks >> > > >> Kris >> > > >> >> > > >> >> > > >> _______________________________________________ >> > > >> SailfishOS.org Devel mailing list >> > > >> To unsubscribe, please send a mail >> > > >> todevel-unsubscr...@lists.sailfishos.org >> > > >> <mailto:devel-unsubscr...@lists.sailfishos.org>> >> > > > >> > > > _______________________________________________ >> > > > SailfishOS.org Devel mailing list >> > > > To unsubscribe, please send a mail to >> > > > devel-unsubscr...@lists.sailfishos.org >> > > > <mailto:devel-unsubscr...@lists.sailfishos.org> >> > > > >> > > > _______________________________________________ >> > > > SailfishOS.org Devel mailing list >> > > > To unsubscribe, please send a mail to >> > > > devel-unsubscr...@lists.sailfishos.org >> > >> > _______________________________________________ >> > SailfishOS.org Devel mailing list >> > To unsubscribe, please send a mail to >> devel-unsubscr...@lists.sailfishos.org >> >> _______________________________________________ >> SailfishOS.org Devel mailing list >> To unsubscribe, please send a mail to >> devel-unsubscr...@lists.sailfishos.org >> > >
_______________________________________________ SailfishOS.org Devel mailing list To unsubscribe, please send a mail to devel-unsubscr...@lists.sailfishos.org