忍者ブログ
暇人おやじの暇なつぶやき
[83] [82] [81] [80] [79] [78] [77] [76] [75] [74] [73]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

■スレッドから処理を依頼する安全な処理方法

    Delegate Sub SetTextCallback(ByVal [text] As String)

これは、SetTextCallbackを実行する実体であり、このSetTextCallbackは各スレッドから呼び出す際、安全に実行される

この実体はSetTextプロシジャに設定してあり、このSetTextCallbackを指定することで、複数のスレッドがフォームのコンポーネントにアクセスしても、問題なく処理されるものである
これはDelphiで言うところの「Synchronize」に値する

    Private Sub SetText(ByVal [text] As String)

        If Me.TextBox1.InvokeRequired Then
            Dim d As New SetTextCallback(AddressOf SetText)
            Me.Invoke(d, New Object() {[text]})
        Else
            Me.TextBox1.Text += [text] & vbCrLf
        End If
    End Sub

実はこの例は「方法 : Windows フォーム コントロールのスレッド セーフな呼び出しを行う」に記載されているのだが、これがまた複雑なうえ、様々なコード例があり、非常に分かり易いのだが、あえてこの部分を抜き出してみた

スッキリしたかったのでR

PR


トラックバック
この記事にトラックバックする:


忍者ブログ [PR]
カレンダー
08 2024/09 10
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
フリーエリア
最新CM
最新TB
プロフィール
HN:
忍者 シオ才
性別:
非公開
バーコード
ブログ内検索