Condividi tramite


Interfaccia ICLRTask

Fornisce metodi che consentono all'host di effettuare richieste di Common Language Runtime o di inviare a CLR notifiche sull'attività associata.

Metodi

Metodo

Oggetto di descrizione

Metodo ICLRTask::Abort

Richiede a Common Language Runtime di interrompere l'attività rappresentata dall'istanza corrente di ICLRTask.

Metodo ICLRTask::ExitTask

Notifica a Common Language Runtime che l'attività associata all'istanza corrente di ICLRTask sta terminando e tenta di chiudere l'attività normalmente.

Metodo ICLRTask::GetMemStats

Ottiene informazioni statistiche sull'utilizzo delle risorse di memoria da parte dell'attività rappresentata dall'istanza corrente di ICLRTask.

Metodo ICLRTask::LocksHeld

Ottiene il numero di blocchi attualmente definiti sull'attività.

Metodo ICLRTask::NeedsPriorityScheduling

Ottiene un valore che indica se l'host deve assegnare una priorità alta alla ripianificazione dell'attività rappresentata dall'istanza corrente di ICLRTask.

Metodo ICLRTask::Reset

Informa Common Language Runtime che l'host ha completato un'attività e che è quindi possibile riutilizzare l'istanza corrente di ICLRTask per rappresentare un'altra attività.

Metodo ICLRTask::RudeAbort

Fa sì che Common Language Runtime interrompa immediatamente l'attività rappresentata dall'istanza corrente di ICLRTask, senza la garanzia che i finalizzatori vengano eseguiti.

Metodo ICLRTask::SetTaskIdentifier

Imposta un identificatore univoco per l'attività rappresentata dall'istanza corrente di ICLRTask, da utilizzare nel debug.

Metodo ICLRTask::SwitchIn

Notifica a Common Language Runtime che l'attività rappresentata dall'istanza corrente di ICLRTask è in uno stato eseguibile.

Metodo ICLRTask::SwitchOut

Notifica a Common Language Runtime che l'attività rappresentata dall'istanza corrente di ICLRTask non è più in uno stato eseguibile.

Metodo ICLRTask::YieldTask

Richiede che Common Language Runtime renda disponibile il tempo processore alle altre attività. Common Language Runtime non garantisce che lo stato definito per l'attività sarà in grado di produrre tempo di elaborazione.

Note

Un oggetto ICLRTask è la rappresentazione di un'attività per Common Language Runtime. In un punto qualsiasi dell'esecuzione di codice un'attività può essere definita in esecuzione o in attesa di esecuzione. L'host chiama il metodo ICLRTask::SwitchIn per notificare a Common Language Runtime che l'attività rappresentata dall'istanza corrente di ICLRTask attualmente si trova in uno stato in cui può essere eseguita. Dopo una chiamata al metodo ICLRTask::SwitchIn, l'host può pianificare l'attività su qualsiasi thread del sistema operativo, eccetto i casi in cui Common Language Runtime richiede l'affinità di thread, come specificato dalle chiamate ai metodi IHostTaskManager::BeginThreadAffinity e IHostTaskManager::EndThreadAffinity. In seguito, il sistema operativo potrebbero decidere di rimuovere l'attività dal thread e definirne lo stato non di esecuzione. Ciò potrebbe verificarsi, ad esempio, ogni volta che l'attività si blocca sulla sincronizzazione delle primitive o è in attesa del completamento di operazioni di I/O. L'host chiama l'oggetto SwitchOut per notificare a Common Language Runtime che l'attività rappresentata dall'istanza corrente di ICLRTask non si trova più in uno stato in cui può essere eseguita.

Un'attività in genere termina alla fine dell'esecuzione del codice. In quel momento, l'host chiama il metodo ICLRTask::ExitTask per eliminare l'oggetto ICLRTaskassociato. Tuttavia, le attività possono essere riciclate utilizzando una chiamata al metodo ICLRTask::Reset, che consente di riutilizzare l'istanza di ICLRTask. Questo approccio impedisce il sovraccarico dovuto alle ripetute operazioni di creazione ed eliminazione delle istanze.

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: MSCorEE.h

Libreria: inclusa come risorsa in MSCorEE.dll

Versioni di .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Vedere anche

Riferimenti

Interfaccia ICLRTaskManager

Interfaccia IHostTask

Interfaccia IHostTaskManager

Interfaccia ICLRTask2

Altre risorse

Interfacce di hosting