暗黙フォームか明示的フォームか? VB.NET2005


VB Tips And Sample(HOME)(VB.NET Sample インデックス)

暗黙フォームか明示的フォームか?
という話題は既に取り上げられているし、軍配は「明示的」に上がっている。@ITしかり。
管理人も明示的フォームを使うと思う。
しかしながらパフォーマンス上どうしても暗黙フォームを使うことがある?かもしれない。
というわけでとりあえず実行速度を比較。
ついでにUsing も試す。
Form2には適当にLabel等20個ぐらいのコントロールを貼り付けた。

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        'sectiem モジュールでパブリック宣言

        sectiem = My.Computer.Clock.TickCount 'コンピュータのシステム タイマから取得したミリ秒のカウントを格納する Integer です。


        ''暗黙フォーム 2回目が圧倒的に早い(開放されていないので)が いつ どこで開放されるか不明。
        また使う前にフォームの値を初期化する必要あり!(テキストボックスの値など、前回の値が残る!ので)。
        Form2.ShowDialog()
        ''----------------------------------------------
        ''明示的フォーム(いくらか遅くなる)
        Dim fm2 As New Form2
        fm2.ShowDialog()
        fm2.Dispose() '明示的に開放する必要がある
        ''----------------------------------------------
        ''明示的に開放する必要がなくなる()
        ''ブロックが終了したとき、必ずシステムによって Dispose メソッドが呼び出されます。
        ''いくらか遅くなる Dim fm2 As New Form2 と速度は変わらない
        Using fm3 As New Form2
            fm3.ShowDialog()
        End Using

        ''----------------------------------------------
        'Form2に書く
        ''Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ''    sectiem = My.Computer.Clock.TickCount - sectiem
        ''    Me.Label1.Text = sectiem
        ''End Sub


    End Sub


End Class



VB Tips And Sample(HOME)(VB.NET Sample インデックス)