|
0
PiotrLoginov
22.04.16
✎
16:52
|
Здрасте всем. Много ресурсов уходит на выполнение кода внутри попытки? Замеры не делал, подозреваю, что в разных условиях результат будет разным. Хотелось бы сделать какие-то выводы, получив мнения форумчан.
Код:
ФЗ = ФоновыеЗадания.Выполнить("Модуль.Процедура", МассивПараметров, Ключ, НазваниеЗадания);
Известно, что если менеджер заданий не активен, то произойдет исключение. Есть и другие причины для возникновения исключений, но сейчас интересует именно эта. Понять из свойства "ФоновыеЗадания" глобального контекста, активен ли менеджер, просто невозможно.
Цель: максимально снизить временнЫе затраты при работе с асинхронными вызовами.
|
|
|
1
PiotrLoginov
22.04.16
✎
17:09
|
Так. Почитал в системе стандартов на ИТС про "Перехват исключений в коде". О производительности ни слова (
Только не говорите, что выполнение внутри попытки не ресурсозатратнее, чем выполнение в обычном режиме. Зачем тогда все проверки корректности переменных и т.п.? выполнять все внутри попыток - и вся недолга...
Кстати, встречал творения, в которых этих попыток было... хоть пруд пруди.
|
|
|
2
PiotrLoginov
22.04.16
✎
17:39
|
Еще пособирал инфу.
1. И верно, БСП теперь уже напичкана попытками.
2. Использование попыток в некоторых случаях может дать ощутимые тормоза. Кроме того, частое "Использование исключений для контроля хода выполнения программы маскирует намерения программиста, поэтому это считается плохой практикой" ().
3 (имхо) В случае с менеджером фоновых заданий, как и в других столкновениях с чем-то, представляющим из себя некий черный ящик, запуск фонового задания внутри попытки, похоже - оправданное решение.
Но вот странно, в БСП, где попыток несколько тысяч, запуск фонового задания всегда выполняется "напрямую".
|
|