|
Listing 5-17 extracted from chapter
Processes, threads and synchronization
Listing 5-16< > Listing 5-18
This listing can be compiled with the command line: csc.exe /target:exe Example_5_17.cs Errors: 0 Warnings: 0
Example_5_17.cs
using System.Runtime.Remoting.Contexts;
using System.Threading;
[Synchronization(SynchronizationAttribute.REQUIRED)]
public class Foo : System.ContextBoundObject {
public void DisplayThreadId() {
System.Console.WriteLine( "Begin: ManagedThreadId = " +
Thread.CurrentThread.ManagedThreadId );
Thread.Sleep( 1000 );
System.Console.WriteLine( "End: ManagedThreadId = " +
Thread.CurrentThread.ManagedThreadId );
}
}
public class Program {
static Foo m_Objet = new Foo();
static void Main() {
Thread t0 = new Thread( ThreadProc );
Thread t1 = new Thread( ThreadProc );
t0.Start(); t1.Start();
t0.Join(); t1.Join();
}
static void ThreadProc() {
for ( int i = 0; i < 2; i++ )
m_Objet.DisplayThreadId();
}
}
Copyright Patrick Smacchia 2006 2007
|