[VB.NET] Sharedインスタンスの実体化のタイミング

2010年7月11日

 Sharedインスタンスの実体化のタイミングを確認。

 最初に操作/参照された瞬間に初期化が走るようですね。

Public Class Form1
    Private Sub Button1_Click(...) Handles Button1.Click
        Class1.Data = "AAAAA"
        MsgBox(Class1.Data, , "Button1_Click")

    End Sub
End Class

Public Class Class1
    Private Shared mInstance As New Class1
    Public Shared Data As String

    Private Sub New()
        System.Threading.Thread.Sleep(5000)
        MsgBox(Data, , "Class1.New")
    End Sub
End Class

 なんとなく、Class1.Dataに代入することで Class1 が New されるかのように感じるので、 New()内では Dataプロパティに値(="AAAAA")が入っていそうですが、そうはならないよと言うことで。

 また、誰かが触らない限り、Newされないので、コンストラクタに時間のかかる処理を入れてしまうと、初期化に時間がかかってレスポンスが悪いという結果になりかねないので、プロセス起動とともに初期化しておいてほしいようなものは、それなりのお手当てを忘れないようにしましょう。






カテゴリー: Program, VB.NET

Follow comments via the RSS Feed | Leave a comment | Trackback URL

コメントを投稿する

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


«   »
 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org