Nota
L'accés a aquesta pàgina requereix autorització. Podeu provar d'iniciar la sessió o de canviar els directoris.
L'accés a aquesta pàgina requereix autorització. Podeu provar de canviar els directoris.
Informa al Common Language Runtime (CLR) de que el host ha completado una tarea y permite que CLR reutilice la instancia de ICLRTask actual para representar otra tarea.
Sintaxis
HRESULT Reset (
[in] BOOL fFull
);
Parámetros
fFull [in] true, si el tiempo de ejecución debe restablecer todos los valores estáticos relacionados con subprocesos además de la información de seguridad y configuración regional relacionada con la instancia actual ICLRTask ; en caso contrario, false.
Si el valor es true, el tiempo de ejecución restablece los datos almacenados mediante AllocateDataSlot o AllocateNamedDataSlot.
Valor devuelto
| HRESULT | Descripción |
|---|---|
| S_OK |
Reset se devolvió correctamente. |
| HOST_E_CLRNOTAVAILABLE | CLR no se ha cargado en un proceso o CLR está en un estado en el que no puede ejecutar código administrado ni procesar la llamada. correctamente |
| HOST_E_TIMEOUT | Se agota el tiempo de espera de la llamada. |
| HOST_E_NOT_OWNER | El autor de la llamada no posee el bloqueo. |
| HOST_E_ABANDONED | Se canceló un evento mientras un subproceso bloqueado o fibra estaba esperando. |
| E_FAIL | Se produjo un error catastrófico desconocido. Cuando un método devuelve E_FAIL, CLR ya no se puede usar dentro del proceso. Las llamadas posteriores a los métodos de hospedaje devuelven HOST_E_CLRNOTAVAILABLE. |
Observaciones
CLR puede reciclar instancias creadas ICLRTask anteriormente para evitar la sobrecarga de crear repetidamente nuevas instancias cada vez que necesita una tarea nueva. El host habilita esta característica llamando a ICLRTask::Reset en lugar de ICLRTask::ExitTask cuando ha completado una tarea. En la lista siguiente se resume el ciclo de vida normal de una ICLRTask instancia:
El tiempo de ejecución crea una nueva
ICLRTaskinstancia.El tiempo de ejecución llama a IHostTaskManager::GetCurrentTask para obtener una referencia a la tarea host actual.
El tiempo de ejecución llama a IHostTask::SetCLRTask para asociar la nueva instancia a la tarea host.
La tarea se ejecuta y se completa.
El host destruye la tarea llamando a
ICLRTask::ExitTask.
Reset modifica este escenario de dos maneras. En el paso 5 anterior, el host llama Reset a para restablecer la tarea a un estado limpio y, a continuación, desacopla la ICLRTask instancia de su instancia de IHostTask asociada. Si lo desea, el host también puede almacenar en caché la IHostTask instancia para su reutilización. En el paso 1 anterior, el tiempo de ejecución extrae un reciclado ICLRTask de la memoria caché en lugar de crear una nueva instancia.
Este enfoque funciona bien cuando el host también tiene un grupo de tareas de trabajo reutilizables. Cuando el host destruye una de sus IHostTask instancias, destruye el correspondiente ICLRTask mediante una llamada a ExitTask.
Requisitos
Plataformas: Consulte Requisitos del sistema.
Encabezado: MSCorEE.h
Biblioteca: Incluido como recurso en MSCorEE.dll
Versiones de .NET Framework: Disponible desde la versión 2.0