Handling Application Events: OnIdle, OnThreadException, OnThreadExit

image_pdfimage_print
   
 


using System;
using System.Threading;
using System.Reflection;
using System.Windows.Forms;

public class HelloWorldForm : Form {
    public HelloWorldForm() {
    }

    public static void OnApplicationExit(object sender, EventArgs e) {
        try {
            Console.WriteLine("shutting down.");
        } catch (NotSupportedException) {
        }
    }

    public static void OnIdle(object sender, EventArgs e) {
        Console.WriteLine("idle.");
    }

    public static void OnThreadException(object sender, ThreadExceptionEventArgs e) {
        Console.WriteLine("caught!");
    }

    public static void OnThreadExit(object sender, EventArgs e) {
        Console.WriteLine("thread is shutting down.");
    }

    public static void Main() {
        HelloWorldForm FormObject = new HelloWorldForm();

        Application.ApplicationExit += new EventHandler(OnApplicationExit);
        Application.Idle += new EventHandler(OnIdle);
        Application.ThreadException += new ThreadExceptionEventHandler(OnThreadException);
        Application.ThreadExit += new EventHandler(OnThreadExit);
        Application.Run(FormObject);
    }
}