ManualResetEvent.WaitOne

image_pdfimage_print
   
 


using System;
using System.Threading;

public class NonSignaledManual {
    public static void Main() {
        ManualResetEvent mansig = new ManualResetEvent(false);
        Console.WriteLine("ManualResetEvent Before WaitOne ");
        bool b = mansig.WaitOne(1000, false);
        Console.WriteLine("ManualResetEvent After WaitOne " + b);
    }
}

    


ManualResetEvent: Reset

image_pdfimage_print
   
 


using System;
using System.Threading;


class Reset {
    [STAThread]
    static void Main() {
        ManualResetEvent manRE;
        manRE = new ManualResetEvent(true);
        bool state = manRE.WaitOne(1000, true);
        Console.WriteLine(state);

        manRE.Reset();
        state = manRE.WaitOne(5000, true);
        Console.WriteLine(state);
    }
}

    


ManualResetEvent: Set

image_pdfimage_print
   
 

using System;
using System.Threading;

class ManualSet{
    [STAThread]
    static void Main(string[] args) {
        ManualResetEvent manRE = new ManualResetEvent(false);
        bool state = manRE.WaitOne(5000, true);
        Console.WriteLine("ManualResetEvent After first WaitOne " + state);

        manRE.Set();
        state = manRE.WaitOne(5000, true);
        Console.WriteLine("ManualResetEvent After second WaitOne " + state);
    }
}
   

    


Define macro for conditional compile

image_pdfimage_print
   


#define win2000
#define release
#undef  win98

using System;
using System.Diagnostics;

    class Test
    {
        [Conditional("DEBUG")]
        public static void DumpState()
        {
            Console.WriteLine("Dump some state...");
        }

        public static void Main()
        {
            string platformName;

            #if winXP       // Compiling for Windows XP
                platformName = "Microsoft Windows XP";
            #elif win2000   // Compiling for Windows 2000
                platformName = "Microsoft Windows 2000";
            #elif winNT     // Compiling for Windows NT
                platformName = "Microsoft Windows NT";
            #elif win98     // Compiling for Windows 98
                platformName = "Microsoft Windows 98";
            #else           // Unknown platform specified
                platformName = "Unknown";
            #endif

            Console.WriteLine(platformName);

            // Call the conditional DumpState method
            DumpState();

        }
    }

           
          


#undef, #elif, and #else preprocessor directives

image_pdfimage_print

#define DEBUG
#undef DEBUG
#define PRODUCTION

class Test {
public static void Main() {
int total = 0;
int counter = 10;

myLabel:
System.Console.WriteLine(“counter = ” + counter);
if (counter < 5) { #if DEBUG System.Console.WriteLine("goto myLabel"); #elif PRODUCTION System.Console.WriteLine("counter < 5"); #else System.Console.WriteLine("goto myLabel, counter < 5"); #endif goto myLabel; } System.Console.WriteLine("total = " + total); } } [/csharp]