Cuando ThreadPool.QueueUserWorkItem devuelve falso
-
02-07-2019 - |
Pregunta
El MSDN indica que el método devuelve
verdadero si el método es exitoso en cola NotSupportedException es arrojado si el elemento de trabajo no está en cola.
Para fines de prueba, ¿cómo hacer que el método devuelva false
? O es solo un "subóptimo" diseño de clase?
Solución
Al mirar el código fuente en Reflector, parece ser la única parte del código que podría devolver 'falso'. es una llamada a lo siguiente:
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern bool AdjustThreadsInPool(uint QueueLength);
Otros consejos
Este es probablemente un caso de "reservado para uso futuro". Es posible que desee tratarlo como un fracaso, pero será difícil de probar.
Casi trato este método como un vacío / Sub.
Es imaginable que toda la API (grupos de subprocesos) quede obsoleta cuando llegue la Biblioteca de tareas paralelas (TPL).
verdadero si el método se puso en cola correctamente; NotSupportedException se genera si el elemento de trabajo no está en cola.
Trate una return false
de la misma manera que trata una NotSupportedException
.
Para que devuelva falso, utilice un método u objeto simulado.
Desea probar su propio código que escribió, no el código de Windows subyacente. Estoy seguro de que Microsoft ya tiene muchas pruebas propias para eso.