Методы расширения - это работа дьявола.
Кажется, что все считают, что методы расширения в .Net - лучшая вещь после нарезанного хлеба. Кажется, что число разработчиков, поющих свои похвалы, растет с каждой минутой, но я боюсь, что не могу не презирать их, и если кто-то не может привести блестящее оправдание или пример, который я еще не слышал, я никогда не напишу один. Недавно я наткнулся на эту ветку , и я должен сказать, что чтение примеров расширений с наибольшим количеством голосов заставило меня почувствовать рвоту (метафорически, конечно).
Основными причинами их совершенства являются увеличенная читаемость, улучшенная OO-сущность и способность лучше связывать вызовы методов.
Боюсь, что я должен отличаться, на самом деле я нахожу, что они однозначно снижают читабельность и OO-сущность благодаря тому, что в своей основе они являются ложью. Если вам нужен вспомогательный метод, который действует на объект, напишите вспомогательный метод, который действует на этот объект, не ври мне. Когда я вижу aString.SortMeBackwardsUsingKlingonSortOrder, тогда строка должна иметь этот метод, потому что это говорит мне что-то о строковом объекте, а не о классе AnnoyingNerdReferences.StringUtilities.
LINQ был разработан таким образом, что вызовы цепочечных методов необходимы, чтобы избежать странных и неудобных выражений, а методы расширения, возникающие из LINQ, понятны, но в целом вызовы цепочечных методов снижают читабельность и приводят к коду, который мы видим в запутанные Perl конкурсы.
Итак, короче говоря, методы расширения являются злом. Сбросьте цепи сатаны и посвятите себя расширению свободного кода.
Дочерние элементы наследуют текущий приоритет процесса при их создании. Это означает, что если вы переименовываете родителя и запускаете дочерний, он будет иметь измененный приоритет.
Дочерние элементы, которые уже запущены, когда вы renice, не затронуты.
Подсказка находится в fork ()
справочные страницы (запуск дочернего процесса выполняется операцией fork / exec
):
fork () создает дочерний процесс, который отличается от родительского процесса только своими PID и PPID, а также тем фактом, что использование ресурсов установлено на 0.