Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Использование Using
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. Меня интересует п2. Скажите, на сколько это актуально для Вэб серверов, например, после запроса к БД ? Надо ли лихорадочно использовать Using или оставить всё на усмотрение GC ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2017, 13:54 |
|
||
|
Использование Using
|
|||
|---|---|---|---|
|
#18+
Valery_BСкажите, на сколько это актуально для Вэб серверов, например, после запроса к БД ? Для веб-серверов, если объект должен жить в контексте запроса, то используются DI-контейнеры, которые реализуют using на более высоком уровне. Это не означает, что using не может использоваться для объектов с очень коротким жизненным циклом. Valery_BНадо ли лихорадочно использовать Using или оставить всё на усмотрение GC ? При чём тут GC? У using немного другая задача, отличающаяся от задач GC. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2017, 14:09 |
|
||
|
Использование Using
|
|||
|---|---|---|---|
|
#18+
hVosttПри чём тут GC? У using немного другая задача, отличающаяся от задач GC. У них задача - освободить память. Если я правильно понимаю, new SQLConnection будет удалён через интерфейс IDisposable после использования Using Если не использовать Using, то он будет удалён GC, когда тот захочет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2017, 14:21 |
|
||
|
Использование Using
|
|||
|---|---|---|---|
|
#18+
Valery_BhVosttПри чём тут GC? У using немного другая задача, отличающаяся от задач GC. У них задача - освободить память. Если я правильно понимаю, new SQLConnection будет удалён через интерфейс IDisposable после использования Using Если не использовать Using, то он будет удалён GC, когда тот захочет. 1. ну не совсем удален сразу, через Using уберется хедлер на соединение и оно вернется в пул соединений, объект SQLConnection удалиться позже так как на него не будет ссылок уже самими CG, в рамках Connection пул конекшенов ограниченный и вызывать dispose в рамках операции следуют и не надеется на CG. 2. SQLConnection возможно и удалиться сам посредством CG, я внутренности не помню уже, но крайне рекомендую. но когда пишешь свои классы которые используются неуправляемые ресурсы, реализовать IDisposable надо по причине что финализатор не знает о внутренних ресурсах ничего, он вызовет финализатор и все, привет утечки памяти. ну ты можешь конечно в финализаторе вызвать dispose каждого объекта, но по первой причине управляют такими ресурсами руками либ посредством IOC. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2017, 14:53 |
|
||
|
Использование Using
|
|||
|---|---|---|---|
|
#18+
Valery_B, имхо add 3. На собственные нужды. по моему в transactionscope, и в еще одном хитром типе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2017, 15:31 |
|
||
|
Использование Using
|
|||
|---|---|---|---|
|
#18+
Так в частности на SQLConnection надо ставить Using ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2017, 16:24 |
|
||
|
Использование Using
|
|||
|---|---|---|---|
|
#18+
Valery_B, видишь IDisposable ставь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2017, 16:59 |
|
||
|
Использование Using
|
|||
|---|---|---|---|
|
#18+
Valery_BУ них задача - освободить память. Если я правильно понимаю, new SQLConnection будет удалён через интерфейс IDisposable после использования Using Если не использовать Using, то он будет удалён GC, когда тот захочет. Неправильно. У using задача вызвать Dispose у объекта при выходе из блока. У Dispose задача, освободить ресурсы (не память!). У GC задача, собрать мусор и очистить память. Рекомендую осознать строгую разницу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2017, 17:17 |
|
||
|
Использование Using
|
|||
|---|---|---|---|
|
#18+
Valery_BТак в частности на SQLConnection надо ставить Using ? Если в web, то да. Иначе рискуете выбрать пул и начнут сыпаться исключения и приложение перестанет работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2017, 10:55 |
|
||
|
Использование Using
|
|||
|---|---|---|---|
|
#18+
Valery_B, Надо. И SQLConnection, и FileStream, и вообще все, что реализует IDisposable и больше не требуется надо диспозить. Надо понимать, что помимо памяти, некоторые объекты используют еще и другие виды ресурсов. Например, те же подключения к БД. И если вы не закрывали подключение вручную, то оно будет закрыто только в момент выполнения финализатора. Но когда это случится - неизвестно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2017, 00:58 |
|
||
|
Использование Using
|
|||
|---|---|---|---|
|
#18+
ntkrnlmpValery_B, Надо понимать, что помимо памяти, некоторые объекты используют еще и другие виды ресурсов. Так я это понимаю... По этому у меня везде написано так: Код: c# 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2017, 10:04 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=39393052&tid=1355624]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 341ms |

| 0 / 0 |
