c#で、フォームが全て閉じられたらプログラムを終了する

以下のようにする。

/// <summary>
/// アプリケーションのメイン エントリ ポイントです。
/// </summary>
[STAThread]
static void Main()
{
    (new Form1()).Show();

    // フォームが全て閉じられるまでプログラム実行を継続
    var oTimer = new System.Windows.Forms.Timer();
    oTimer.Interval = 1000;
    oTimer.Tick += delegate(object sender, EventArgs e)
    {
        if (Application.OpenForms.Count == 0)
        {
            Application.Exit();
        }
    };
    oTimer.Start();
    Application.Run();
}

普通はこんなことしなくても「Application.Run(new Form1());」でよいのだが、表示するフォームが取得できない場合に上の方法を使った。