On 10/04/12 23:35, Sujan Dasmahapatra wrote: > for(int th=0; th<Threads.size(); th++) > { > if(Threads[th].isRunning()) > Threads[th].waitForFinished(); > Threads[th].cancel(); > } > Threads.clear(); > This loop is correct. If threads is running wait, then cancel it. braces > are proper Sascha.
The code you pasted is equivalent to the following: for(int th=0; th<Threads.size(); th++) { if(Threads[th].isRunning()) { Threads[th].waitForFinished(); } Threads[th].cancel(); } Threads.clear(); Have you considered a situation where a QConcurrent job has not started yet at the time the loop comes around to check if it's alive? Because your code will unconditionally kill all such tasks; they will *not* run. (As a side note, calling a QFuture a "thread" is not very clear. Threads and futures are two different things which do have something in common, but they are different. In my opinion, calling a list of futures "threads" is wrong.) Cheers, Jan -- Trojita, a fast e-mail client -- http://trojita.flaska.net/ _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest