Я хотел бы ответить на этот вопрос с точки зрения политики кодирования, которая может или не может быть полезна кому-либо. Но особенно когда вы имеете дело с инструментами, предназначенными для 9-5 корпоративных программистов, люди, которые пишут документацию, обычно используют слова типа «не должен» и «никогда», чтобы означать «не делайте этого, если вы действительно не знаете, что вы делаешь и почему ".
Несколько других моих любимых в мире C # слов: «никогда не вызывайте lock (this)» или «никогда не вызывайте GC.Collect ()». Эти два факта принудительно объявлены во многих блогах и официальной документации, и IMO - полная дезинформация. На некотором уровне эта дезинформация служит своей цели, поскольку она удерживает новичков от выполнения вещей, которые они не понимают, прежде чем полностью исследовать альтернативы, но в то же время, это затрудняет поиск РЕАЛЬНОЙ информации через поисковые системы, которые все кажется, указывают на статьи, в которых говорится, что вы ничего не должны делать, не предлагая ответа на вопрос «почему бы и нет?»
Политически это сводится к тому, что люди считают «хорошим дизайном» или «плохим дизайном». Официальная документация не должна диктовать дизайн моего приложения. Если есть действительно техническая причина, по которой вы не должны вызывать sleep (), то в документации IMO должно быть указано, что вполне нормально вызывать ее при определенных сценариях, но, возможно, предложите некоторые альтернативные решения, которые не зависят от сценария или более подходят для других. сценарии.
Явный вызов sleep () полезен во многих ситуациях, когда сроки четко определены в терминах реального времени, однако существуют более сложные системы для ожидания и сигнализации потоков, которые следует учитывать и понимать перед началом работы. добавление sleep () в ваш код и добавление ненужных операторов sleep () в ваш код обычно считается тактикой новичка.