Что происходит, когда вызывается SqlCommand.Dispose?

Теоретически, поскольку SqlCommand реализует IDisposable, объект SqlCommand всегда должен быть удален. Я лично обернуваю вокруг себя заявление об использовании. Однако я вижу много кода, который никогда не располагает объектами SqlCommand без каких-либо очевидных проблем.

Я понимаю, что финализаторы в конечном итоге будут вызваны сборкой мусора, но поскольку в большинстве случаев это может занять довольно много времени (и никогда в других случаях), почему не происходит сбой кода из-за нехватки ресурса?

В нашей собственной базе кода у нас есть код, который работает 24×7 без утилизации команд. Я бы хотел очистить его, но это трудно оправдать, когда это не вызывает никаких проблем.

Мне кажется, что он вызывает метод базового класса (Component) Dispose, а также сбор мусора с запуском …

Public Sub Dispose(ByVal disposing As Boolean) If disposing Then 'Same as Component.Dispose() SyncLock Me If Me.site IsNot Nothing AndAlso Me.site.Container IsNot Nothing Then Me.site.Container.Remove(Me) End If If Me.events IsNot Nothing Then Dim handler As EventHandler = DirectCast(Me.events.Item(Component.EventDisposed), EventHandler) If handler IsNot Nothing Then handler.Invoke(Me, EventArgs.Empty) End If End If End SyncLock End If GC.SuppressFinalize(Me) End Sub 

Я получил это, используя Reflector .

  • Уже открыт считыватель данных, связанный с этой командой. Как это возможно?
  • Как SqlConnection управляет IsolationLevel?
  • Неверное определение имени столбца SQL из запроса
  • Какой тип данных возвращает метод SQLCommand ExecuteScalar ()?
  • Существует ли класс SqlFileStream, который работает с Sql Server 2005?
  • Тайм-аут соединения с несколькими вставками - ADO.NET - SQL Server
  • Как поместить данные из полей BLOB SQL Server?
  • Использование SqlParameter в SQL LIKE не работает
  • DataTable: удаляет старые DataRows, прежде чем вставлять новый сейф?
  • AdventureWorks не может создать модель данных сущностей ado.net
  • Каков правильный способ вставки типа DBGeography через ado.net
  • Interesting Posts

    Как я могу выполнить Pivot-запрос в диапазоне чисел и сортировать результаты?

    Как этот запрос работает, чтобы разделить csv на строки в sql-сервере?

    Функция sql pivot для таблицы с двумя столбцами

    @OneToMany в спящем режиме

    Преобразование строки, отформатированной как yyyymmddhhnn to datetime

    SQL Server, выбрав из двух таблиц с использованием оператора IF внутри оператора WHERE в зависимости от параметра

    Как технически работает столбец идентификаторов в sql-сервере?

    Копирование всего содержимого базы данных (схемы и данных)

    Сохранение расширенного файла событий в лазурном блоке

    как обновить значение из другого TSQL

    Передача IEnumerable <string> в хранимую процедуру SQL Server в качестве параметра типа таблицы пользователя

    Преобразование столбца ROW_NUMBER влияет на производительность

    Присоединяйтесь к двум таблицам, используя полнотекстовый поиск в SQL Server

    Таблица скриптов как CREATE TO с помощью vb.net

    форматирование параметра строки является инструкцией IN

    Давайте будем гением компьютера.