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 associées à l’instance actuelle ICLRTask ; sinon, false.
Si la valeur est true, le runtime réinitialise les données stockées à l’aide AllocateDataSlot ou AllocateNamedDataSlot.
Valeur de retour
| HRESULT | Description |
|---|---|
| S_OK |
Reset retourné avec succès. |
| HOST_E_CLRNOTAVAILABLE | Le CLR n’a pas été chargé dans un processus, ou le CLR est dans un état dans lequel il ne peut pas exécuter de code managé ou traiter l’appel. Réussi |
| HOST_E_TIMEOUT | L’appel a expiré. |
| HOST_E_NOT_OWNER | L’appelant ne possède pas le verrou. |
| HOST_E_ABANDONED | Un événement a été annulé pendant qu’un thread bloqué ou fibre attendait dessus. |
| E_FAIL | Une défaillance catastrophique inconnue s’est produite. Lorsqu’une méthode retourne E_FAIL, le CLR n’est plus utilisable dans le processus. Les appels suivants aux méthodes d’hébergement retournent HOST_E_CLRNOTAVAILABLE. |
Remarques
Le CLR peut recycler les instances créées ICLRTask précédemment pour éviter la surcharge de création répétée de nouvelles instances chaque fois qu’elle a besoin d’une nouvelle tâche. L’hôte active cette fonctionnalité en appelant ICLRTask::Reset au lieu d’ICLRTask ::ExitTask lorsqu’elle a terminé une tâche. La liste suivante résume le cycle de vie normal d’une ICLRTask instance :
Le runtime crée une
ICLRTaskinstance.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 manières. À 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 à des fins de réutilisation. À l’étape 1 ci-dessus, le runtime extrait un recyclage ICLRTask à partir 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 de travail réutilisables. Lorsque l’hôte détruit l’une de ses IHostTask instances, il détruit le correspondant ICLRTask en appelant ExitTask.
Exigences
Plateformes : Consultez Configuration requise.
En-tête: MSCorEE.h
Bibliothèque: Inclus en tant que ressource dans MSCorEE.dll
Versions du .NET Framework : Disponible depuis la version 2.0