Metodo ICLRTask::Reset
Informa Common Language Runtime (CLR) che l'host ha completato un'attività e consente a CLR di riutilizzare l'istanza ICLRTask corrente per rappresentare un'altra attività.
Sintassi
HRESULT Reset (
[in] BOOL fFull
);
Parametri
fFull
[in] true
, se il runtime deve reimpostare tutti i valori statici correlati al thread oltre alle informazioni relative alla sicurezza e alle impostazioni locali correlate all'istanza corrente ICLRTask
; in caso contrario, false
.
Se il valore è true
, il runtime reimposta i dati archiviati usando AllocateDataSlot o AllocateNamedDataSlot.
Valore restituito
HRESULT | Descrizione |
---|---|
S_OK | Reset restituito correttamente. |
HOST_E_CLRNOTAVAILABLE | CLR non è stato caricato in un processo oppure CLR si trova in uno stato in cui non può eseguire codice gestito o elaborare la chiamata. Correttamente |
HOST_E_TIMEOUT | Timeout della chiamata. |
HOST_E_NOT_OWNER | Il chiamante non possiede il blocco. |
HOST_E_ABANDONED | Un evento è stato annullato durante l'attesa di un thread o di una fibra bloccata. |
E_FAIL | Si è verificato un errore irreversibile sconosciuto. Quando un metodo restituisce E_FAIL, CLR non è più utilizzabile all'interno del processo. Le chiamate successive ai metodi di hosting restituiscono HOST_E_CLRNOTAVAILABLE. |
Commenti
CLR può riciclare le istanze create ICLRTask
in precedenza per evitare il sovraccarico della creazione ripetuta di nuove istanze ogni volta che richiede una nuova attività. L'host abilita questa funzionalità chiamando ICLRTask::Reset
anziché ICLRTask::ExitTask quando ha completato un'attività. L'elenco seguente riepiloga il normale ciclo di vita di un'istanza ICLRTask
:
Il runtime crea una nuova
ICLRTask
istanza.Il runtime chiama IHostTaskManager::GetCurrentTask per ottenere un riferimento all'attività host corrente.
Il runtime chiama IHostTask::SetCLRTask per associare la nuova istanza all'attività host.
L'attività viene eseguita e completata.
L'host elimina definitivamente l'attività chiamando
ICLRTask::ExitTask
.
Reset
modifica questo scenario in due modi. Nel passaggio 5 precedente, l'host chiama Reset
per reimpostare l'attività a uno stato pulito e quindi separa l'istanza dall'istanza ICLRTask
di IHostTask associata. Se lo si desidera, l'host può anche memorizzare nella cache l'istanza IHostTask
per il riutilizzo. Nel passaggio 1 precedente, il runtime esegue il pull di un oggetto riciclato ICLRTask
dalla cache invece di creare una nuova istanza.
Questo approccio funziona bene quando l'host dispone anche di un pool di attività di lavoro riutilizzabili. Quando l'host elimina una delle relative IHostTask
istanze, elimina l'oggetto corrispondente ICLRTask
chiamando ExitTask
.
Requisiti
Piattaforme: vedere Requisiti di sistema di .NET Framework.
Intestazione: MSCorEE.h
Libreria: Incluso come risorsa in MSCorEE.dll
Versioni di .NET Framework: Disponibile dalla versione 2.0