Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Dispatcher.VerifyAccess-Methode: ()

 

Veröffentlicht: Oktober 2016

Bestimmt, ob der aufrufende Thread Zugriff auf diese Dispatcher.

Namespace:   System.Windows.Threading
Assembly:  WindowsBase (in WindowsBase.dll)

public void VerifyAccess()

Exception Condition
InvalidOperationException

Der aufrufende Thread keinen Zugriff auf diese Dispatcher.

Nur der Thread den Dispatcher erstellt auf möglicherweise Zugriff auf die Dispatcher.

Diese Methode ist öffentlich. Jeder Thread kann daher überprüfen, um festzustellen, ob der Zugriff auf hat die Dispatcher.

Der Unterschied zwischen CheckAccess und VerifyAccess ist CheckAccess Gibt einen booleschen Wert zurück, wenn der aufrufende Thread keinen Zugriff auf die Dispatcher und VerifyAccess löst eine Ausnahme aus.

Im folgenden Beispiel wird VerifyAccess zu bestimmen, ob ein Thread auf den Thread zugreifen kann, die eine Button erstellt wurde. Die Methode nimmt ein Objekt als Argument, das umgewandelt wird eine Button. Die VerifyAccess Methode für die Dispatcher von der Button wird aufgerufen, um den Zugriff auf den Thread zu überprüfen.

Verfügt der aufrufende Thread Zugriff auf die Dispatcher, die Button wird aktualisiert, indem auf die Mitglieder der Button.

Wenn der aufrufende Thread keinen Zugriff auf eine InvalidOperationException ausgelöst. In diesem Beispiel wird die Ausnahme abgefangen und ein Delegat, der akzeptiert eine Button als Argument auf die Dispatcher von der Button. Diese Dispatcher der Auswirkungen der Aktualisierung der Button.

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

    if (theButton != null)
    {
        try
        {   
            // Check if this thread has access to this object.
            theButton.Dispatcher.VerifyAccess();

            // The thread has access to the object, so update the UI.
            UpdateButtonUI(theButton);
        }

        // Cannot access objects on the thread.
        catch (InvalidOperationException e)
        {
            // Exception Error Message.
            MessageBox.Show("Exception ToString: \n\n" + e.ToString(), 
                "Execption Caught! Thrown During AccessVerify().");

            MessageBox.Show("Pushing job onto UI Thread Dispatcher");

            // Placing job onto the Dispatcher of the UI Thread.
            theButton.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
                new UpdateUIDelegate(UpdateButtonUI), theButton);
        }
    }
}

.NET Framework
Verfügbar seit 3.0
Zurück zum Anfang
Anzeigen: