Método IHostTaskManager::BeginThreadAffinity
Notifica o host de que o código gerenciado está inserindo um período no qual a tarefa atual não deve ser movida para outro thread do sistema operacional.
Sintaxe
HRESULT BeginThreadAffinity ();
Valor Retornado
HRESULT | Descrição |
---|---|
S_OK | BeginThreadAffinity retornado com êxito. |
HOST_E_CLRNOTAVAILABLE | O CLR (Common Language Runtime) não foi carregado em um processo ou está em um estado no qual não pode executar o código gerenciado ou processar a chamada com sucesso. |
HOST_E_TIMEOUT | Uma chamada atingiu o tempo limite. |
HOST_E_NOT_OWNER | O chamador não possui o bloqueio. |
HOST_E_ABANDONED | Um evento foi cancelado enquanto uma fibra ou um thread bloqueado estava esperando por ele. |
E_FAIL | Uma falha catastrófica desconhecida ocorreu. Quando um método retorna E_FAIL, o CLR não pode mais ser usado no processo. Chamadas subsequentes para métodos de hospedagem retornam HOST_E_CLRNOTAVAILABLE. |
Comentários
O CLR normalmente chama IHostTaskManager::BeginThreadAffinity
no contexto de uma chamada para Thread.BeginThreadAffinity. A tarefa atual não deve ser reagendada até que uma chamada correspondente seja feita para IHostTaskManager::EndThreadAffinity. As tarefas podem ser alternadas, mas quando são alternadas de volta, elas devem ser atribuídas ao mesmo thread do sistema operacional do qual foram alternadas. Chamadas aninhadas para BeginThreadAffinity
não têm efeito, porque a chamada se refere à tarefa atual.
Requisitos
Plataformas: confira Requisitos do sistema.
Cabeçalho: MSCorEE.h
Biblioteca: incluída como um recurso no MSCorEE.dll
Versões do .NET Framework: disponíveis desde 2.0