Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


WeakDelegates Sample
This sample demonstrates the following:
-  Using the Micro Framework’s WeakDelegate class to notify the object of 
   events.  A WeakDelegate allows the object to have its memory reclaimed as 
   long as the application has no other references to the object (forcing it to 
   stay alive).
-  Defining an event that uses WeakDelegate objects to refer to the objects that 
   have registered interest in the event.
-  Creating an object and registering it with an event supporting WeakDelegates.
-  How a strong reference to the object ensures that it receives notification 
   when the event is raised.
-  How no strong references to the object allows a garbage collection to destroy 
   the object.  Consequently, the object will not receive any further 
   notifications when the event is raised.

This sample runs on the following devices:
-  The .NET Micro Framework SDK 4.0 Emulator.
-  Any physical device.
-  Any custom emulator.

To build and run this sample:
1. Open WeakDelegates.sln in Visual Studio 2008.

2. To run this sample in the Emulator, open the project Properties page, click 
   the .NET Micro Framework tab, set the Transport property to Emulator, and 
   then select the emulator you want to use.

   To run this sample on a device, open the project Properties page, click the 
   .NET Micro Framework tab, set the Transport property to the transport that 
   your device supports, and then select the device you want to target. 

3. Open the file WeakDelegates.cs.  Set a breakpoint on line 63, immediately 
   below the garbage collection.

4. In the Build menu, select Start Debugging (or press F5).  In the Output pane, 
   select the Output tab.  You can see the output of the first RaiseSomeEvent 

5. Observe that after garbage collection, events are no longer raised.  That is, 
   output is not produced by the second RaiseSomeEvent call.

Any actual application that uses this code will require modifications of this 
code.  This solution provides sample code, rather than ship-ready code, and is 
provided for instructional purposes only.