I have now removed Threads[th].cancel(). Only waitForFinished
 is there as below.

for(int th=0; th<Threads.size(); th++)
{
if(Threads[th].isRunning())
Threads[th].waitForFinished();
}
Eventhough it's not writing the data on the file correctly.
I'll try your code Sascha thanks a lot for so beautiful code snippet.
Thanks Sujan
On Fri, Oct 5, 2012 at 9:41 AM, Harri Pasanen <ha...@mpaja.com> wrote:

> Cancelling threads is a no-no in most threading systems I'm familiar
> with, so even reading such code somehow brushes me against feathers...
>
> So out of habit I'd steer away from using cancel even if it were supported.
>
> On 10/05/2012 12:34 AM, Alex Malyushytskyy wrote:
> > Why do you need  Threads[th].cancel();?
> > According to documentation not only "the QFuture returned by
> > QtConcurrent::run() does not support canceling,...", but I do not see
> > any reason you could want to do this.
> >
> > Alex
> >
> >
> >
> > On Thu, Oct 4, 2012 at 6:25 AM, André Somers <an...@familiesomers.nl>
> wrote:
> >> Op 4-10-2012 15:21, Sujan Dasmahapatra schreef:
> >>> I am not able to run my threads concurrently please help.
> >>> How can I  run 21 threads concurrently and get the job done by 8 cpus
> >>> what I have in my machine.
> >>>
> >>> I am doing like this
> >>> [code]
> >>>
> >>> std::vector<QFuture<void> > Threads;
> >>> QFuture<void> Th;
> >>>
> >>> for(int z=0; z<21; z++)
> >>> {
> >>> Th = QtConcurrent::run(this,&UnrstParser,z);
> >>> Thraeds.push_back(Th);
> >>> }
> >>> for(int th=0; th<Threads.size(); th++)
> >>> {
> >>>   if(Threads[th].isRunning())
> >>> Threads[th].waitForFinished();
> >>> Threads[th].cancel();
> >>> }
> >>> Threads.clear();
> >>> [/code]
> >>>
> >>> With this first few threads are probably running but not all the
> >>> threads. As it's supposed to generate some files by each thread which
> >>> is not being generated. Please help.
> >>>
> >>>
> >> QtConcurrent will use as many threads as it deems useful, based on the
> >> system you are running on. Unless you have a 21 core system, it is
> >> probably not useful to run 21 threads your your task.
> >> However, QThreadPool has methods to change how many threads are
> >> considdered useful, so you should look into using that class.
> >>
> >> André
> >>
> >> _______________________________________________
> >> Interest mailing list
> >> Interest@qt-project.org
> >> http://lists.qt-project.org/mailman/listinfo/interest
> > _______________________________________________
> > Interest mailing list
> > Interest@qt-project.org
> > http://lists.qt-project.org/mailman/listinfo/interest
>
> _______________________________________________
> Interest mailing list
> Interest@qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
>



-- 
Regards
Sujan Dasmahapatra
skype: sujan.dasmahapatra
yahoo msn : dasmahapatra.aerodynam...@yahoo.co.in
Mobile no : +966-530184511
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to