Performing pre-termination activities using ProcessExit event

In many cases we use resources such as files, storage, connections etc. in our application. Being a programmer it is our responsibility to free up all the used resources before terminating our program. We have try {} finally{} which does the same thing. This can be achieved by AppDomains ProcessExit event.

    class Myclass
    {
        // will print 1st also sets up Event Handler
        static Myclass()
        {
            Console.WriteLine("I am inside Myclass");
            
        }

        static void Main(string[] args)
        {
            Console.WriteLine("I am inside Main()"); // it will print 2nd
            AppDomain.CurrentDomain.ProcessExit += new EventHandler(CurrentDomain_ProcessExit);
        }

        static void CurrentDomain_ProcessExit(object sender, EventArgs e)
        {
            Console.WriteLine("I am the last one to run");
        }
    }

Executing this program will print
I am inside Myclass
I am inside Main()


Obviously the last statement will not be visible, as the application is still running. But, you can try writting in an event log to see how it works.

No comments:

Post a Comment