Compartir a través de


ICLRTask

Actualización: noviembre 2007

Proporciona métodos que permiten al host realizar solicitudes de Common Language Runtime (CLR) o notificar a CLR la tarea asociada.

interface ICLRTask : IUnknown {
    HRESULT Abort ();
    HRESULT ExitTask ();
    HRESULT GetMemStats (
        [out] COR_GC_THREAD_STATS *pMemUsage
    );
    HRESULT LocksHeld (
        [out] SIZE_T *pLockCount
    );
    HRESULT NeedsPriorityScheduling (
        [out] BOOL *pbNeedsPriorityScheduling
    );
    HRESULT Reset (
        [in] BOOL fFull
    );
    HRESULT RudeAbort ();
    HRESULT SetTaskIdentifier (
        [in] DWORD asked
    );
    HRESULT SwitchIn (
        [in] HANDLE threadHandle
    );
    HRESULT SwitchOut ();
    HRESULT YieldTask ();
}

Métodos

Método

Descripción

ICLRTask::Abort (Método)

Solicita a CLR que anule la tarea representada por la instancia actual de ICLRTask.

ICLRTask::ExitTask (Método)

Notifica a CLR que la tarea asociada a la instancia actual de ICLRTask está finalizando, e intenta cerrar la tarea correctamente.

ICLRTask::GetMemStats (Método)

Obtiene información estadística sobre el uso que hace de los recursos de memoria la tarea representada por la instancia de ICLRTask actual.

ICLRTask::LocksHeld (Método)

Obtiene el número de bloqueos mantenidos actualmente en la tarea.

ICLRTask::NeedsPriorityScheduling (Método)

Obtiene un valor que indica si el host debe asignar una prioridad alta para reprogramar la tarea representada por la instancia de ICLRTask actual

ICLRTask::Reset (Método)

Notifica a CLR que el host ha completado una tarea, y permite a CLR reutilizar la instancia actual de ICLRTask para representar otra tarea.

ICLRTask::RudeAbort (Método)

Hace que CLR anule inmediatamente la tarea representada por la instancia actual de ICLRTask, sin ninguna garantía de que se ejecuten los finalizadores.

ICLRTask::SetTaskIdentifier (Método)

Establece un identificador único para la tarea representada por la instancia de ICLRTask actual, para su uso durante la depuración.

ICLRTask::SwitchIn (Método)

Notifica a CLR que la tarea representada por la instancia actual de ICLRTask se encuentra en estado operativo.

ICLRTask::SwitchOut (Método)

Notifica a CLR que la tarea representada por la instancia actual de ICLRTask ya no se encuentra en estado operativo.

ICLRTask::YieldTask (Método)

Solicita que CLR ponga el tiempo del procesador a disposición de otras tareas. CLR no garantiza que la tarea se vaya a colocar en un estado en el que pueda ceder tiempo de procesamiento.

Comentarios

ICLRTask es la representación de una tarea de CLR. En cualquier momento durante la ejecución del código se puede decir que una tarea está ejecutándose o esperando para ejecutarse. El host llama al método ICLRTask::SwitchIn para notificar a CLR que la tarea representada por la instancia actual de ICLRTask se encuentra ahora en estado operativo. Después de una llamada a ICLRTask::SwitchIn, el host puede programar la tarea en cualquier subproceso del sistema operativo, excepto en los casos en que el motor en tiempo de ejecución requiere la afinidad del subproceso, tal y como especifican las llamadas a los métodos IHostTaskManager::BeginThreadAffinity y IHostTaskManager::EndThreadAffinity. Algún tiempo después, el sistema operativo puede decidir quitar la tarea del subproceso y colocarla en un estado de no ejecución. Por ejemplo, esto puede suceder siempre que la tarea se bloquea en tipos primitivos de sincronización o espera que las operaciones de E/S se completen. El host llama a SwitchOut para notificar a CLR que la tarea representada por la instancia actual de ICLRTask ya no está en estado operativo.

Normalmente, una tarea termina al final de la ejecución del código. En ese momento, el host llama a ICLRTask::ExitTask para destruir el ICLRTask asociado. Sin embargo, las tareas también se pueden reciclar utilizando una llamada a ICLRTask::Reset, lo que permite que la instancia de ICLRTask se pueda volver a usar. Este enfoque evita la sobrecarga que supone crear y destruir repetidamente las instancias.

Requisitos

Plataformas: vea Requisitos de sistema de .NET Framework.

Encabezado: MSCorEE.idl

Biblioteca: Se incluye como recurso en MsCorEE.dll

Versiones de .NET Framework: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Vea también

Referencia

ICLRTaskManager

IHostTask

IHostTaskManager

Otros recursos

Interfaces de hospedaje