Condividi tramite


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.

  1. Common Language Runtime crea una nuova istanza di ICLRTask.

  2. Common Language Runtime chiama IHostTaskManager::GetCurrentTask per ottenere un riferimento all'attività corrente dell'host.

  3. Common Language Runtime chiama IHostTask::SetCLRTask per associare la nuova istanza all'attività dell'host.

  4. L'attività viene eseguita e completata.

  5. 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

Vedere anche

Riferimenti

Interfaccia ICLRTask

Interfaccia ICLRTaskManager

Interfaccia IHostTask

Interfaccia IHostTaskManager