Ejemplo n.º 1
0
    // This method demonstrates how to implement a type that allows its users
    // to explicitly dispose/close the object. For many object's this paradigm
    // is strongly encouranged.
    private static void DisposeDemo()
    {
        Display(0, "\n\nDemo start: Disposing an object versus Finalize.", +1);
        DisposeObj obj = new DisposeObj("Explicitly disposed");

        obj.Dispose();  // Explicitly cleanup this object, Finalize should run
        obj = null;
        Collect();
        WaitForFinalizers(); // Finalize should NOT run (it was suppressed)

        obj = new DisposeObj("Implicitly disposed");
        obj = null;
        Collect();
        WaitForFinalizers(); // No explicit cleanup, Finalize SHOULD run
        Display(-1, "Demo stop: Disposing an object versus Finalize.", 0);
    }
Ejemplo n.º 2
0
    // This method demonstrates how to implement a type that allows its users
    // to explicitly dispose/close the object. For many object's this paradigm
    // is strongly encouranged.
    private static void DisposeDemo() {
        Display(0, "\n\nDemo start: Disposing an object versus Finalize.", +1);
        DisposeObj obj = new DisposeObj("Explicitly disposed");
        obj.Dispose();  // Explicitly cleanup this object, Finalize should run
        obj = null;
        Collect();
        WaitForFinalizers(); // Finalize should NOT run (it was suppressed)

        obj = new DisposeObj("Implicitly disposed");
        obj = null;
        Collect();
        WaitForFinalizers(); // No explicit cleanup, Finalize SHOULD run
        Display(-1, "Demo stop: Disposing an object versus Finalize.", 0);
    }