Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo DispatcherObject.CheckAccess ()

 

Data di pubblicazione: ottobre 2016

Determina se il thread chiamante ha accesso a questo DispatcherObject.

Spazio dei nomi:   System.Windows.Threading
Assembly:  WindowsBase (in WindowsBase.dll)

public bool CheckAccess()

Valore restituito

Type: System.Boolean

true Se il thread chiamante dispone dell'accesso a questo oggetto. in caso contrario, false.

Solo il thread di Dispatcher è stato creato sarà accessibile il DispatcherObject.

Qualsiasi thread può verificare se ha accesso a DispatcherObject.

La differenza tra CheckAccess e VerifyAccess che CheckAccess restituisce un valore booleano che specifica se il thread chiamante ha accesso a DispatcherObject e VerifyAccess genera un'eccezione se il thread chiamante non dispone dell'accesso a questo DispatcherObject.

Questo metodo è identico alla chiamata al metodo CheckAccess sull'oggetto associato Dispatcher oggetto.

Nell'esempio seguente viene utilizzato CheckAccess per determinare se un thread ha accesso al thread che un Button è stato creato. Il CheckAccess metodo il Button viene chiamato per verificare l'accesso al thread. Se il thread chiamante dispone dell'accesso, il Button viene aggiornato accedendo solo i membri del Button; in caso contrario, un delegato che accetta un Button come argomento, viene inserito nel Dispatcher di 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
Disponibile da 3.0
Torna all'inizio
Mostra: