waitcallback thread example .net multithreading concurrency threadpool

.net - example - Cuando ThreadPool.QueueUserWorkItem devuelve falso



threadpool queueuserworkitem example (4)

true si el método se pone en cola exitosamente; NotSupportedException se lanza si el elemento de trabajo no está en cola.

Trate un resultado return false de la misma manera que trata una NotSupportedException .

Para que devuelva falso, use 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 para eso.

MSDN declara que el método regresa

true si el método se pone en cola exitosamente; NotSupportedException se lanza si el elemento de trabajo no está en cola.

Para fines de prueba, ¿cómo obtener el método para devolver false ? ¿O es simplemente un diseño de clase "subóptimo"?


Al mirar el código fuente en Reflector, parece que la única parte del código que puede devolver "falso" es una llamada a lo siguiente:

[MethodImpl(MethodImplOptions.InternalCall)] private static extern bool AdjustThreadsInPool(uint QueueLength);


Es imaginable que toda la API (grupos de subprocesos) se vuelve obsoleta cuando llega la Biblioteca de tareas paralelas (TPL).


Este es probablemente un caso de "reservado para uso futuro". Es posible que desee tratarlo como una falla, pero será difícil de probar.

Casi trato este método como un vacío / Sub.