Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

DispatcherObject.CheckAccess méthode ()

 

Date de publication : novembre 2016

Détermine si le thread appelant a accès à ce DispatcherObject.

Espace de noms:   System.Windows.Threading
Assembly:  WindowsBase (dans WindowsBase.dll)

public bool CheckAccess()

Valeur de retour

Type: System.Boolean

true Si le thread appelant a accès à cet objet ; dans le cas contraire, false.

Seul le thread du Dispatcher a été créé peut accéder le DispatcherObject.

N’importe quel thread peut vérifier s’il a accès à ce DispatcherObject.

La différence entre CheckAccess et VerifyAccess qui est CheckAccess retourne une valeur booléenne qui spécifie si le thread appelant a accès à DispatcherObject et VerifyAccess lève une exception si le thread appelant n’a pas accès à cet DispatcherObject.

Cette méthode est identique à l’appel CheckAccess sur associé Dispatcher objet.

L’exemple suivant utilise CheckAccess pour déterminer si un thread a accès au thread qui un Button a été créé. Le CheckAccess méthode sur le Button est appelée pour vérifier l’accès au thread. Si le thread appelant a accès, le Button est mis à jour en accédant simplement aux membres de le Button; Sinon, un délégué qui accepte une Button en tant qu’argument, est publié sur le Dispatcher de la 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
Disponible depuis 3.0
Retour au début
Afficher: