Condividi tramite


Interfaccia ICLRTask

Fornisce metodi che consentono all'host di effettuare richieste di Common Language Runtime (CLR) o di fornire una notifica a CLR sull'attività associata.

Metodi

Metodo Descrizione
Metodo Abort Richiede che CLR interrompa l'attività rappresentata dall'istanza corrente ICLRTask .
Metodo ExitTask Notifica al CLR che l'attività associata all'istanza corrente ICLRTask termina e tenta di arrestare l'attività in modo normale.
Metodo GetMemStats Ottiene informazioni statistiche sull'uso delle risorse di memoria dall'attività rappresentata dall'istanza corrente ICLRTask .
Metodo LocksHeld Ottiene il numero di blocchi attualmente mantenuti nell'attività.
Metodo NeedsPriorityScheduling Ottiene un valore che indica se l'host deve assegnare una priorità elevata per riprogrammare l'attività rappresentata dall'istanza corrente ICLRTask .
Metodo Reset Informa il CLR che l'host ha completato un'attività e consente a CLR di riutilizzare l'istanza corrente ICLRTask per rappresentare un'altra attività.
Metodo RudeAbort Causa l'interruzione immediata dell'attività rappresentata dall'istanza corrente ICLRTask , senza una garanzia che gli finalizzatori verranno eseguiti.
Metodo SetTaskIdentifier Imposta un identificatore univoco per l'attività rappresentata dall'istanza corrente ICLRTask , per l'uso nel debug.
Metodo SwitchIn Notifica al CLR che l'attività rappresentata dall'istanza corrente ICLRTask è in uno stato operabile.
Metodo SwitchOut Notifica al CLR che l'attività rappresentata dall'istanza corrente ICLRTask non è più in uno stato operabile.
Metodo YieldTask Richiede che CLR renda disponibile il tempo di processore per altre attività. CLR non garantisce che l'attività venga inserita in uno stato in cui può restituire il tempo di elaborazione.

Commenti

Un ICLRTask è la rappresentazione di un'attività per CLR. In qualsiasi momento durante l'esecuzione del codice, un'attività può essere descritta come in esecuzione o in attesa di esecuzione. L'host chiama il ICLRTask::SwitchIn metodo per notificare a CLR che l'attività rappresentata dall'istanza corrente ICLRTask è ora in uno stato operabile. Dopo una chiamata a ICLRTask::SwitchIn, l'host può pianificare l'attività in qualsiasi thread del sistema operativo, tranne nei casi in cui il runtime richiede affinità di thread, come specificato dalle chiamate ai metodi IHostTaskManager::BeginThreadAffinity e IHostTaskManager::EndThreadAffinity. In un secondo momento, il sistema operativo potrebbe decidere di rimuovere l'attività dal thread e inserirla in uno stato non in esecuzione. Ad esempio, questo potrebbe verificarsi ogni volta che le attività bloccano le primitive di sincronizzazione o attende il completamento delle operazioni di I/O. L'host chiama SwitchOut per notificare a CLR che l'attività rappresentata dall'istanza corrente ICLRTask non è più in uno stato operabile.

Un'attività termina in genere alla fine dell'esecuzione del codice. In quel momento, l'host chiama ICLRTask::ExitTask per eliminare l'oggetto associato ICLRTask. Tuttavia, le attività possono essere riciclate usando una chiamata a ICLRTask::Reset, che consente di usare di nuovo l'istanza ICLRTask . Questo approccio impedisce il sovraccarico della creazione ripetuta e dell'eliminazione di istanze.

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: MSCorEE.h

Libreria: Incluso come risorsa in MSCorEE.dll

Versioni di .NET Framework: Disponibile da 2.0

Vedi anche