Esta documentación está archivada y no tiene mantenimiento.

DispatcherObject.CheckAccess (Método)

Actualización: noviembre 2007

Determina si el subproceso de la llamada tiene acceso a DispatcherObject.

Espacio de nombres:  System.Windows.Threading
Ensamblado:  WindowsBase (en WindowsBase.dll)

public bool CheckAccess()
public boolean CheckAccess()
public function CheckAccess() : boolean
No se pueden utilizar métodos en XAML.

Valor devuelto

Tipo: System.Boolean
true si el subproceso de la llamada tiene acceso a este objeto; en caso contrario, false.

Sólo el subproceso en el que se creó Dispatcher puede tener acceso a DispatcherObject.

Cualquier subproceso puede comprobar si tiene acceso a DispatcherObject.

La diferencia entre CheckAccess y VerifyAccess es que CheckAccess devuelve un valor booleano que especifica si el subproceso de la llamada tiene acceso a DispatcherObject y VerifyAccess produce una excepción si el subproceso de la llamada no tiene acceso a DispatcherObject.

En el ejemplo siguiente se usa CheckAccess para determinar si un subproceso tiene acceso al subproceso en el que se creó Button. Se llama al método CheckAccess en Button para comprobar el acceso al subproceso. Si el subproceso de la llamada tiene acceso, Button se actualiza simplemente mediante el acceso a los miembros de Button; de lo contrario, se expone un delegado, que acepta Button como argumento, en el objeto Dispatcher de 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 Vista

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0
Mostrar: