Freigeben über


Dispatcher.CheckAccess Methode

Definition

Bestimmt, ob der aufrufende Thread diesem Dispatcher zugeordnet ist.

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

Gibt zurück

true, wenn der aufrufende Thread diesem Dispatcher zugeordnet ist, andernfalls false.

Beispiele

Im folgenden Beispiel wird CheckAccess ermittelt, ob ein Thread Zugriff auf einen Buttonhat. Die CheckAccess -Methode für die Dispatcher zugeordnete Button wird aufgerufen, um den Zugriff auf den Thread zu überprüfen. Wenn der aufrufende Thread Zugriff auf Dispatcherhat, wird der Button aktualisiert, indem auf die Member des Buttonzugegriffen wird. Andernfalls wird ein Delegat, der ein Button als Argument akzeptiert, auf dem Dispatcherplatziert. Die Dispatcher delegieren die Arbeit des Aktualisierens von Button.

// Uses the Dispatcher.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.Dispatcher.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.
            // Place the update method on the Dispatcher of the UI thread.
            theButton.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
                new UpdateUIDelegate(UpdateButtonUI), theButton);
        }
    }
}
' Uses the Dispatcher.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.Dispatcher.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.
            ' Place the 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 die, für die Dispatcher ein DispatcherObject erstellt wird, kann auf das Objekt zugreifen. Verwenden Sie Invoke oder BeginInvoke , um über einen anderen Thread auf das Objekt zuzugreifen.

CheckAccess kann von einem beliebigen Thread aufgerufen werden.

Der Unterschied zwischen CheckAccess und VerifyAccess gibt CheckAccess einen booleschen Wert zurück, der angibt, ob der aufrufende Thread Zugriff auf das Dispatcher hat, und VerifyAccess löst eine Ausnahme aus.

Gilt für:

Weitere Informationen