Home
Browse all 647 examples
Download all 647 examples
Download sample chapters
Reviews
Errata
Acknowledgments
Links on .NET
Paradoxal Press

Buy directly from Paradoxal Press at $33.99 (Save 43%)



Category: Programming
Level: Beginner to seasoned
900 pages
ISBN-10 097661322-0
ISBN-13 978-097661322-0
$59.99 USA
$79.99 CANADA


Listing 14-48 extracted from chapter Unsafe code, exceptions, anonymous methods, iterators


Listing 14-47<     > Listing 14-49


This listing can be compiled with the command line:
csc.exe /target:exe Example_14_48.cs
Errors: 0 Warnings: 0


Example_14_48.cs
using System.Collections;
using System.Threading;
public class Program {
   static AutoResetEvent eventProducterDone = new AutoResetEventfalse );
   static AutoResetEvent eventConsumerDone  = new AutoResetEventfalse );
   static int currentFibo;
   static void Fibo() {
      int i1 = 1;
      int i2 = 1;
      currentFibo = 0;
      // The producer triggers the cascade.
      eventProducterDone.Set();
      whiletrue ) {
         // Wait that the consumer is done.
         eventConsumerDone.WaitOne();
         // Let's build a new Fibonacci number.
         currentFibo = i1 + i2;
         i1 = i2;
         i2 = currentFibo;
         // Let's signal that the new number is ready to be consummed.
         eventProducterDone.Set();
      }
   }
   static void Main() {
      Thread threadProducteur = new Thread(Fibo);
      threadProducteur.Start();
      for int = 1; i < 10; i++ ) {
         // Wait that the producer is done.
         eventProducterDone.WaitOne();
         // Let's consumme.
         System.Console.WriteLine(currentFibo);
         // Let's signal that we have consummed.
         eventConsumerDone.Set();
      }
   }
}	
Copyright Patrick Smacchia 2006 2007