DispatcherObject.CheckAccess メソッド

定義

呼び出し元のスレッドがこの DispatcherObject にアクセスできるかどうかを確認します。

public:
 bool CheckAccess();
public bool CheckAccess ();
member this.CheckAccess : unit -> bool
Public Function CheckAccess () As Boolean

戻り値

Boolean

呼び出し元のスレッドがこのオブジェクトにアクセスできる場合は true。それ以外の場合は false

次の例では、を使用して、が作成された CheckAccess スレッドにスレッドがアクセスできるかどうかを判断し Button ます。 CheckAccessのメソッドは、 Button スレッドへのアクセスを検証するために呼び出されます。 呼び出し元のスレッドがアクセス権を持っている場合は、の Button メンバーにアクセスするだけでが更新されます。 Button それ以外の場合は、を Button 引数として受け取るデリゲートがのにポストされ Dispatcher Button ます。

// Uses the DispatcherObject.CheckAccess method to determine if 
// the calling thread has access to the thread the UI object is on
private void TryToUpdateButtonCheckAccess(object uiObject)
{
    Button theButton = uiObject as Button;

    if (theButton != null)
    {
        // Checking if this thread has access to the object
        if(theButton.CheckAccess())
        {
            // This thread has access so it can update the UI thread
            UpdateButtonUI(theButton);
        }
        else
        {
            // This thread does not have access to the UI thread
            // Pushing update method on the Dispatcher of the UI thread
            theButton.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
                new UpdateUIDelegate(UpdateButtonUI), theButton);
        }
    }
}
' Uses the DispatcherObject.CheckAccess method to determine if 
' the calling thread has access to the thread the UI object is on
Private Sub TryToUpdateButtonCheckAccess(ByVal uiObject As Object)
    Dim theButton As Button = TryCast(uiObject, Button)

    If theButton IsNot Nothing Then
        ' Checking if this thread has access to the object
        If theButton.CheckAccess() Then
            ' This thread has access so it can update the UI thread
            UpdateButtonUI(theButton)
        Else
            ' This thread does not have access to the UI thread
            ' Pushing update method on the Dispatcher of the UI thread
            theButton.Dispatcher.BeginInvoke(DispatcherPriority.Normal, New UpdateUIDelegate(AddressOf UpdateButtonUI), theButton)
        End If
    End If
End Sub

注釈

によって作成されたスレッドだけ Dispatcher がにアクセスでき DispatcherObject ます。

どのスレッドも、このにアクセスできるかどうかを確認でき DispatcherObject ます。

との違いは、 CheckAccess VerifyAccessCheckAccess 呼び出し元のスレッドがこのにアクセスできるかどうかを指定するブール値を返し、 DispatcherObject VerifyAccess 呼び出し元のスレッドがこのにアクセスできない場合は例外をスローし DispatcherObject ます。

このメソッドの呼び出しは CheckAccess 、関連付けられたオブジェクトでの呼び出しと同じです Dispatcher

適用対象