Freigeben über


DispatcherObject.CheckAccess Methode

Definition

Bestimmt, ob der aufrufende Thread auf dieses DispatcherObject zugreifen kann.

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

Gibt zurück

true, wenn der aufrufende Thread auf dieses Objekt zugreifen kann, andernfalls false.

Beispiele

Im folgenden Beispiel wird verwendet CheckAccess , um zu bestimmen, ob ein Thread Zugriff auf den Thread hat, für den ein Button erstellt wurde. Die CheckAccess -Methode für Button wird aufgerufen, um den Zugriff auf den Thread zu überprüfen. Wenn der aufrufende Thread Zugriff hat, wird die Button aktualisiert, indem nur auf die Member von Buttonzugegriffen wird. Andernfalls wird ein Delegat, der ein Button als Argument akzeptiert, auf der Dispatcher des Buttonbereitgestellt.

// 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

Hinweise

Nur der Thread, für den Dispatcher erstellt wurde, kann auf zugreifen DispatcherObject.

Jeder Thread kann überprüfen, ob er Zugriff auf dieses DispatcherObjecthat.

Der Unterschied zwischen CheckAccess und VerifyAccess ist, dass CheckAccess einen booleschen Wert zurückgibt, der angibt, ob der aufrufende Thread Zugriff darauf DispatcherObject hat, und VerifyAccess löst eine Ausnahme aus, wenn der aufrufende Thread keinen Zugriff auf diesen DispatcherObjecthat.

Das Aufrufen dieser Methode ist identisch mit dem Aufrufen CheckAccess des zugeordneten Dispatcher Objekts.

Gilt für: