В MSDN указано, что метод возвращает
true if the method is successfully queued; NotSupportedException is thrown if the work item is not queued.
В целях тестирования, как заставить метод возвращать false? Или это просто «неоптимальный» дизайн класса?





Вероятно, это случай «зарезервировано для будущего использования». Вы можете рассматривать это как провал, но это будет сложно проверить.
Я в значительной степени отношусь к этому методу как к void / Sub.
Можно себе представить, что весь API (пулы потоков) устареет, когда появится библиотека параллельных задач (TPL).
Глядя на исходный код в Reflector, кажется, что единственная часть кода, которая может вернуть false, - это вызов следующего:
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern bool AdjustThreadsInPool(uint QueueLength);
true if the method is successfully queued; NotSupportedException is thrown if the work item is not queued.
Обращайтесь с return false так же, как с NotSupportedException.
Чтобы вернуть false, используйте фиктивный метод или объект. Вы хотите тестировать свой собственный код, который вы написали, а не базовый код Windows. Я уверен, что у Microsoft уже есть множество собственных тестов для этого.
На самом деле исключения были «изобретены» для предотвращения практики «игнорирования возвращаемого значения».
+1: Мне нравится прилагательное «неоптимальный» :)