И тут условие, что время вычисления одного потока ограничено 1 секундой, иначе возвращать 429 код. Вопрос, как установить это ограничение? Можно использовать task.wait(1000), или есть что-то более подходящее?
Делай кооперативную отменяемость. Вроде, в CancellationTokenSource даже есть встроенный механизм для таймаута.
Уже есть такой скедулер, для потоков из пула https://referencesource.microsoft.com/#mscorlib/system/threading/tasks/ThreadPoolTaskScheduler.cs.html
Обсуждают сегодня