CONTENTS
Defining Member Parameters............................................................................................................... 672
Examining CIL Opcodes .................................................................................................673
The .maxstack Directive ....................................................................................................................... 675
Declaring Local Variables in CIL ........................................................................................................... 676
Mapping Parameters to Local Variables in CIL ..................................................................................... 677
The Hidden this Reference ................................................................................................................... 677
Representing Iteration Constructs in CIL .............................................................................................. 678
Building a .NET Assembly with CIL ................................................................................679
Building CILCars.dll............................................................................................................................... 679
Building CILCarClient.exe ..................................................................................................................... 681
Understanding Dynamic Assemblies .............................................................................683
Exploring the System.Reflection.Emit Namespace............................................................................... 684
The Role of the System.Reflection.Emit.ILGe nerator............................................................................ 685
Emitting a Dynamic Assembly .............................................................................................................. 686
Emitting the Assembly and Module Set................................................................................................ 688
The Role of the ModuleBuilder Type..................................................................................................... 689
Emitting the HelloClass Type and the String Member Variable ............................................................ 690
Emitting the Constructors..................................................................................................................... 691
Emitting the SayHello() Method ............................................................................................................ 692
Using the Dynamically Generated Assembly ........................................................................................ 692
Summary .......................................................................................................................693
Part VI: Introducing the .NET Base Class Libraries .............................................695
Chapter 19: Multithreaded, Parallel, and Async Programming ..........................697
The Process/AppDomain/Context/Thread Relationship .................................................697
The Problem of Concurrency ................................................................................................................ 698
The Role of Thread Synchronization..................................................................................................... 699
A Brief Review of the .NET Delegate..............................................................................699
xxviii