Método IHostTaskManager::BeginThreadAffinity
Notifica o anfitrião de que o código gerido está a introduzir um período em que a tarefa atual não deve ser movida para outro thread do sistema operativo.
Syntax
HRESULT BeginThreadAffinity ();
Devolver Valor
HRESULT | Description |
---|---|
S_OK | BeginThreadAffinity devolvido com êxito. |
HOST_E_CLRNOTAVAILABLE | O runtime de linguagem comum (CLR) não foi carregado para um processo ou o CLR está num estado em que não pode executar código gerido ou processar a chamada com êxito. |
HOST_E_TIMEOUT | A chamada excedeu o limite de tempo. |
HOST_E_NOT_OWNER | O autor da chamada não é o proprietário do bloqueio. |
HOST_E_ABANDONED | Um evento foi cancelado enquanto um thread ou fibra bloqueado estava à espera. |
E_FAIL | Ocorreu uma falha catastrófica desconhecida. Quando um método devolve E_FAIL, o CLR já não é utilizável no processo. As chamadas subsequentes para métodos de alojamento devolvem HOST_E_CLRNOTAVAILABLE. |
Observações
Normalmente, o CLR chama IHostTaskManager::BeginThreadAffinity
no contexto de uma chamada para Thread.BeginThreadAffinity. A tarefa atual não pode ser reagendada até que seja efetuada uma chamada correspondente para IHostTaskManager::EndThreadAffinity. As tarefas podem ser desativadas, mas quando são reativadas, têm de ser atribuídas ao mesmo thread do sistema operativo a partir do qual foram desativadas. As chamadas BeginThreadAffinity
aninhadas não têm qualquer efeito, porque a chamada refere-se à tarefa atual.
Requisitos
Plataformas: Veja Requisitos de Sistema.
Cabeçalho: MSCorEE.h
Biblioteca: Incluído como um recurso no MSCorEE.dll
.NET Framework Versões: Disponível desde 2.0