DispatcherObject.CheckAccess Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Determina si el subproceso de la llamada tiene acceso a DispatcherObject.
public:
bool CheckAccess();
public bool CheckAccess ();
member this.CheckAccess : unit -> bool
Public Function CheckAccess () As Boolean
Devoluciones
true
si el subproceso de la llamada tiene acceso a este objeto; en caso contrario, false
.
Ejemplos
En el ejemplo siguiente se usa CheckAccess para determinar si un subproceso tiene acceso al subproceso en el que se creó un Button . Se CheckAccess llama al método en Button para comprobar el acceso al subproceso. Si el subproceso que realiza la llamada tiene acceso, Button se actualiza simplemente accediendo a los miembros de Button; de lo contrario, un delegado, que acepta un Button como argumento, se publica en de DispatcherButton.
// 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);
}
}
}
' Uses the DispatcherObject.CheckAccess method to determine if
' the calling thread has access to the thread the UI object is on
Private Sub TryToUpdateButtonCheckAccess(ByVal uiObject As Object)
Dim theButton As Button = TryCast(uiObject, Button)
If theButton IsNot Nothing Then
' Checking if this thread has access to the object
If theButton.CheckAccess() Then
' 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(AddressOf UpdateButtonUI), theButton)
End If
End If
End Sub
Comentarios
Solo el subproceso en el que Dispatcher se creó puede tener acceso a DispatcherObject.
Cualquier subproceso puede comprobar si tiene acceso a este DispatcherObject.
La diferencia entre CheckAccess y VerifyAccess es que CheckAccess devuelve un valor booleano que especifica si el subproceso que realiza la llamada tiene acceso a esto DispatcherObject y VerifyAccess produce una excepción si el subproceso que realiza la llamada no tiene acceso al objeto .DispatcherObject
Llamar a este método es idéntico a llamar CheckAccess a en el objeto asociado Dispatcher .