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

DispatcherObject.CheckAccess-Methode: ()

 

Veröffentlicht: Oktober 2016

Bestimmt, ob der aufrufende Thread Zugriff auf diese DispatcherObject.

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

public bool CheckAccess()

Rückgabewert

Type: System.Boolean

true Wenn der aufrufende Thread auf dieses Objekt zugreifen kann; andernfalls false.

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

Jeder Thread kann überprüfen, um festzustellen, ob der Zugriff auf diese hat DispatcherObject.

Der Unterschied zwischen CheckAccess und VerifyAccess ist, die CheckAccess Gibt einen booleschen Wert, der angibt, ob der aufrufende Thread Zugriff auf diese DispatcherObject und VerifyAccess löst eine Ausnahme aus, wenn der aufrufende Thread keinen Zugriff auf dieses DispatcherObject.

Das Aufrufen dieser Methode entspricht dem Aufrufen von CheckAccess auf dem zugeordneten Dispatcher Objekt.

Im folgenden Beispiel wird CheckAccess zu bestimmen, ob ein Thread auf den Thread zugreifen kann, die eine Button erstellt wurde. Die CheckAccess Methode für die Button wird aufgerufen, um den Zugriff auf den Thread zu überprüfen. Wenn der aufrufende Thread zugreifen, die Button wird aktualisiert, indem auf die Member der der Buttonist, andernfalls ein Delegat, der akzeptiert eine Button als Argument bereitgestellt, auf die Dispatcher von der 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);
        }
    }
}

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