DispatcherObject.CheckAccess Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Bestimmt, ob der aufrufende Thread auf dieses DispatcherObject zugreifen kann.
public:
bool CheckAccess();
public bool CheckAccess ();
member this.CheckAccess : unit -> bool
Public Function CheckAccess () As Boolean
Gibt zurück
true
, wenn der aufrufende Thread auf dieses Objekt zugreifen kann, andernfalls false
.
Beispiele
Im folgenden Beispiel wird verwendet CheckAccess , um zu bestimmen, ob ein Thread Zugriff auf den Thread hat, für den ein Button erstellt wurde. Die CheckAccess -Methode für Button wird aufgerufen, um den Zugriff auf den Thread zu überprüfen. Wenn der aufrufende Thread Zugriff hat, wird die Button aktualisiert, indem nur auf die Member von Buttonzugegriffen wird. Andernfalls wird ein Delegat, der ein Button als Argument akzeptiert, auf der Dispatcher des Buttonbereitgestellt.
// 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
Hinweise
Nur der Thread, für den Dispatcher erstellt wurde, kann auf zugreifen DispatcherObject.
Jeder Thread kann überprüfen, ob er Zugriff auf dieses DispatcherObjecthat.
Der Unterschied zwischen CheckAccess und VerifyAccess ist, dass CheckAccess einen booleschen Wert zurückgibt, der angibt, ob der aufrufende Thread Zugriff darauf DispatcherObject hat, und VerifyAccess löst eine Ausnahme aus, wenn der aufrufende Thread keinen Zugriff auf diesen DispatcherObjecthat.
Das Aufrufen dieser Methode ist identisch mit dem Aufrufen CheckAccess des zugeordneten Dispatcher Objekts.