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 5-10 extracted from chapter Processes, threads and synchronization


Listing 5-9<     > Listing 5-11


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


Example_5_10.cs
class Foo {
   private class FooSynchronized : Foo {
      private object syncRoot = new object();
      private Foo m_Foo;
      public FooSynchronizedFoo foo ) { m_Foo = foo; }
      public override bool IsSynchronized { get return true; } }
      public override void Fct1(){ lock( syncRoot ) { m_Foo.Fct1(); } }
      public override void Fct2(){ lock( syncRoot ) { m_Foo.Fct2(); } }
   }
   public virtual bool IsSynchronized { get return false; } }
   public static Foo Synchronized(Foo foo){
      if( ! foo.IsSynchronized )
         return new FooSynchronized( foo );
      return foo;
   }
   public virtual void Fct1() { /*...*/ }
   public virtual void Fct2() { /*...*/ }
}	
Copyright Patrick Smacchia 2006 2007