Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. |
Traduction
Source
|
DispatcherObject.CheckAccess, méthode
Détermine si le thread appelant a accès à ce DispatcherObject.
Assembly : WindowsBase (dans WindowsBase.dll)
Seul le thread sur lequel Dispatcher a été créé peut accéder à DispatcherObject.
Tout thread peut vérifier s'il a accès à DispatcherObject.
La différence entre CheckAccess et VerifyAccess est que CheckAccess retourne un booléen 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 à DispatcherObject.
L'appel de cette méthode est identique à l'appel de CheckAccess sur l'objet Dispatcher associé.
L'exemple suivant utilise CheckAccess pour déterminer si un thread a accès au thread sur lequel Button a été créé. La méthode CheckAccess sur Button est appelée pour vérifier l'accès au thread. Si le thread appelant a accès à cet objet, Button est mis à jour en accédant simplement aux membres de Button ; sinon, un délégué qui accepte Button en tant qu'argument est publié sur le Dispatcher du 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); } } }
Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.