Interesting ! well done !

 

Thanks

 

From: [email protected] [mailto:[email protected]]
On Behalf Of James Chapman-Smith
Sent: Thursday, 27 October 2011 11:39 AM
To: ozDotNet
Subject: RE: while (true) using Parallel.ForEach

 

Hi Tom,

 

I've got some examples, but why do you want to do this?

 

       // Something to do in the loop

       Action action =

              () => Console.WriteLine(Thread.CurrentThread.ManagedThreadId);

       

       // standard while(true) loop

       while (true)

       {

              action();

       }

       

       // Now need an infinite enumerable

       private IEnumerable<bool> Forever()

       {

              return Repeat(true);

       }

       

       // a general purpose infinite enumerable

       private IEnumerable<T> Repeat<T>(T value)

       {

              while (true)

              {

                     yield return value;

              }

       }

 

       // ForEach infinite loop

       Parallel.ForEach(Forever(), b => action());

       Parallel.ForEach(Repeat(true), b => action());

       

       // AsParallel/ForAll infinite loop

       Forever().AsParallel().ForAll(b => action());

       Repeat(true).AsParallel().ForAll(b => action());

       

       // Using Interactive Extensions (Ix) Repeat extension method

       // from the Reactive Extensions (Rx) Team

       // so you don't have to roll your own

       Parallel.ForEach(EnumerableEx.Repeat(true), b => action());

       EnumerableEx.Repeat(true).AsParallel().ForAll(b => action());

 

Is this what you wanted?

 

Cheers.

 

James.

 

From: [email protected] [mailto:[email protected]]
On Behalf Of Tom Gao
Sent: Wednesday, 26 October 2011 23:57
To: 'ozDotNet'
Subject: while (true) using Parallel.ForEach

 

Hi All,

 

Can someone please provide me with an example of how I can replicate a
while(true){ . } using Parallel.ForEach?

 

Thank you,

Tom

 

Reply via email to