Quando ThreadPool.QueueUserWorkItem retorna false
-
02-07-2019 - |
Pergunta
O MSDN afirma que o método retorna
true se o método é sucesso enfileiradas; NotSupportedException é lançada se o item de trabalho não está na fila.
Para fins de teste como obter o método para false
retorno? Ou é apenas um projeto de classe "suboptimal"?
Solução
Ao olhar para o código-fonte no refletor, parece que a única parte do código que poderia retornar "false" é uma chamada para o seguinte:
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern bool AdjustThreadsInPool(uint QueueLength);
Outras dicas
Este é provavelmente um caso de "reservado para uso futuro". Você pode querer tratá-lo como um fracasso, mas vai ser difícil de teste.
Eu praticamente tratar este método como um vazio / Sub.
É imaginável que toda a API (thread-piscinas) torna-se obsoleto, quando a biblioteca paralela de tarefas (TPL) chega.
true se o método está na fila com sucesso; NotSupportedException é lançada se o item de trabalho não está na fila.
Trate um return false
da mesma maneira que você trata um NotSupportedException
.
Para obtê-lo para retornar falsa, use um método de simulação ou objeto.
Você quer estar testando seu próprio código que você escreveu, não o código do Windows subjacente. Tenho certeza de que a Microsoft tem a abundância de seus próprios testes já para isso.