Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Informe le Common Language Runtime (CLR) que l’hôte a terminé une tâche et permet au CLR de réutiliser l’instance ICLRTask actuelle pour représenter une autre tâche.
Syntaxe
HRESULT Reset (
[in] BOOL fFull
);
Paramètres
fFull
[in] true si le runtime doit réinitialiser toutes les valeurs statiques liées au thread en plus des informations de sécurité et de paramètres régionaux liées à l’instance ICLRTask actuelle ; sinon, false.
Si la valeur est true, le runtime réinitialise les données stockées avec AllocateDataSlot ou AllocateNamedDataSlot.
Valeur de retour
| HRESULT | Description |
|---|---|
| S_OK |
Reset retourné. |
| HOST_E_CLRNOTAVAILABLE | Le CLR n’a pas été chargé dans un processus ou est dans un état dans lequel il ne peut pas exécuter le code managé ou traiter l’appel. avec succès |
| HOST_E_TIMEOUT | L’appel a expiré. |
| HOST_E_NOT_OWNER | L’appelant n’est pas propriétaire du verrou. |
| HOST_E_ABANDONED | Un événement a été annulé alors qu’un thread ou une fibre bloqué l’attendait. |
| E_FAIL | Une défaillance catastrophique inconnue s’est produite. Quand une méthode retourne E_FAIL, le CLR n’est plus utilisable au sein du processus. Les appels suivants aux méthodes d’hébergement renvoient HOST_E_CLRNOTAVAILABLE. |
Notes
Le CLR peut recycler les instances ICLRTask précédemment créées pour éviter la surcharge liée à la création répétée d’instances chaque fois qu’il a besoin d’une nouvelle tâche. L’hôte active cette fonctionnalité en appelant ICLRTask::Reset au lieu de ICLRTask::ExitTask lorsqu’il a terminé une tâche. La liste suivante résume le cycle de vie normal d’une instance ICLRTask :
Le runtime crée une instance
ICLRTask.Le runtime appelle IHostTaskManager::GetCurrentTask pour obtenir une référence à la tâche hôte actuelle.
Le runtime appelle IHostTask::SetCLRTask pour associer la nouvelle instance à la tâche hôte.
La tâche s’exécute et se termine.
L’hôte détruit la tâche en appelant
ICLRTask::ExitTask.
Reset modifie ce scénario de deux façons. À l’étape 5 ci-dessus, l’hôte appelle Reset pour réinitialiser la tâche à un état propre, puis dissocie l’instance ICLRTask de son instance IHostTask associée. Si vous le souhaitez, l’hôte peut également mettre en cache l’instance IHostTask pour la réutiliser. À l’étape 1 ci-dessus, le runtime extrait un ICLRTask recyclé du cache au lieu de créer une instance.
Cette approche fonctionne bien lorsque l’hôte dispose également d’un pool de tâches worker réutilisables. Quand l’hôte détruit l’une de ses instances IHostTask, il détruit le ICLRTask correspondant en appelant ExitTask.
Spécifications
Plateformes : Consultez Configuration requise.
En-tête : MSCorEE.h
Bibliothèque : incluse en tant que ressource dans MsCorEE.dll
Versions de .NET Framework : Disponible depuis la version 2.0