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à.
HRESULT Reset (
[in] BOOL fFull
);
Parametri
fFull
[in] true se, oltre alle informazioni sulla sicurezza e sulle impostazioni locali relative all'istanza corrente di ICLRTask, Common Language Runtime deve reimpostare tutti i valori statici relativi ai thread; in caso contrario, false.Se il valore è true, i dati archiviati utilizzando i metodi AllocateDataSlot o AllocateNamedDataSlot verranno reimpostati.
Valore restituito
HRESULT |
Oggetto di descrizione |
---|---|
S_OK |
Reset ha restituito correttamente un valore. |
HOST_E_CLRNOTAVAILABLE |
CLR non è stato caricato in un processo oppure si trova in uno stato in cui non è possibile eseguire codice gestito né elaborare la chiamata in modo corretto |
HOST_E_TIMEOUT |
Timeout della chiamata. |
HOST_E_NOT_OWNER |
Il chiamante non è il proprietario del blocco. |
HOST_E_ABANDONED |
Un evento è stato annullato mentre un thread o un fiber bloccato era in attesa di tale evento. |
E_FAIL |
Si è verificato un errore irreversibile sconosciuto. Se un metodo restituisce E_FAIL, CLR non sarà più utilizzabile all'interno del processo. Le successive chiamate ai metodi di hosting restituiranno HOST_E_CLRNOTAVAILABLE. |
Note
Common Language Runtime può riciclare le istanze di ICLRTask create in precedenza in modo da evitare il sovraccarico dovuto alla creazione ripetuta di nuove istanze ogni volta che è necessaria una nuova attività. A tale scopo, quando un'attività è stata completata, l'host chiama ICLRTask::Reset anziché ICLRTask::ExitTask. Nell'elenco riportato di seguito è illustrato il normale ciclo di vita di un'istanza di ICLRTask.
Common Language Runtime crea una nuova istanza di ICLRTask.
Common Language Runtime chiama IHostTaskManager::GetCurrentTask per ottenere un riferimento all'attività corrente dell'host.
Common Language Runtime chiama IHostTask::SetCLRTask per associare la nuova istanza all'attività dell'host.
L'attività viene eseguita e completata.
L'host elimina l'attività mediante una chiamata a ICLRTask::ExitTask.
Reset può modificare questo scenario in due modi. Nel passaggio 5 l'host chiama Reset per reimpostare l'attività sullo stato originario, quindi separa l'istanza di ICLRTask dalla relativa istanza di IHostTask associata. Se lo si desidera, l'host può inoltre memorizzare nella cache l'istanza di IHostTask in modo da poterla riutilizzare. Nel passaggio 1, anziché creare una nuova istanza, ricicla ICLRTask dalla cache.
Questo approccio è ottimale quando l'host dispone anche di un pool di attività di lavoro riutilizzabili. Quando elimina una delle istanze di IHostTask, l'host elimina il corrispondente ICLRTask mediante una chiamata a ExitTask.
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