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