Вопросы с тегом «idisposable»

IDisposable - это интерфейс в библиотеке базовых классов Microsoft .NET Framework (BCL). Он предназначен для предоставления универсального детерминированного метода освобождения неуправляемых ресурсов в коде приложения .NET.

1659
Правильное использование интерфейса IDisposable

Из документации Microsoft я знаю, что «основное» использование IDisposableинтерфейса - очистка неуправляемых ресурсов. Для меня «неуправляемый» означает такие вещи, как соединения с базой данных, сокеты, дескрипторы окон и т. Д. Но я видел код, в котором Dispose()метод реализован для освобождения...

381
Использование метода Finalize / Dispose в C #

C # 2008 Я работал над этим некоторое время, и я все еще не уверен в использовании методов finalize и dispose в коде. Мои вопросы ниже: Я знаю, что нам нужен только финализатор при утилизации неуправляемых ресурсов. Однако, если есть управляемые ресурсы, которые выполняют вызовы к неуправляемым...

334
HttpClient и HttpClientHandler должны быть расположены между запросами?

System.Net.Http.HttpClient и System.Net.Http.HttpClientHandler в .NET Framework 4.5 реализуют IDisposable (через System.Net.Http.HttpMessageInvoker ). В usingзаявлении говорится: Как правило, когда вы используете объект IDisposable, вы должны объявить и создать его экземпляр в операторе using. Этот...

197
Должен ли я Dispose () DataSet и DataTable?

DataSet и DataTable оба реализуют IDisposable, поэтому, согласно общепринятым рекомендациям, я должен вызывать их методы Dispose (). Однако из того, что я прочитал, DataSet и DataTable на самом деле не имеют никаких неуправляемых ресурсов, поэтому Dispose () на самом деле ничего не делает. Кроме...

179
Будет ли Dispose () вызываться в операторе using с нулевым объектом?

Безопасно ли использовать usingоператор для (потенциально) нулевого объекта? Рассмотрим следующий пример: class Test { IDisposable GetObject(string name) { // returns null if not found } void DoSomething() { using (IDisposable x = GetObject("invalid name")) { if (x != null) { // etc... } } } }...

151
Должен ли я вызвать Close () или Dispose () для потоковых объектов?

Такие классы, как Stream, StreamReaderи StreamWriterт. Д. Реализует IDisposableинтерфейс. Это означает, что мы можем вызывать Dispose()метод для объектов этих классов. Они также определили publicметод с именем Close(). Теперь это смущает меня, что я должен назвать, как только я закончу с объектами?...

138
Как предотвратить распространение IDisposable на все ваши классы?

Начните с этих простых занятий ... Скажем, у меня есть простой набор таких классов: class Bus { Driver busDriver = new Driver(); } class Driver { Shoe[] shoes = { new Shoe(), new Shoe() }; } class Shoe { Shoelace lace = new Shoelace(); } class Shoelace { bool tied = false; } A Busимеет a Driver,...

134
Будет ли сборщик мусора вызывать IDisposable. Утилизировать для меня?

.NET IDisposable Pattern подразумевает, что если вы пишете финализатор и внедряете IDisposable, ваш финализатор должен явно вызывать Dispose. Это логично, и это то, что я всегда делал в тех редких ситуациях, когда требуется финализатор. Однако, что произойдет, если я просто сделаю это: class Foo :...

115
Что произойдет, если я вернусь до окончания использования оператора? Будет ли вызвана диспозиция?

У меня есть следующий код using(MemoryStream ms = new MemoryStream()) { //code return 0; } dispose()Метод вызывается в конце usingзаявления брекет }правильно? Так как I returnдо конца usingоператора, будет ли MemoryStreamобъект размещен должным образом? Что здесь...

86
Как узнать, удалена ли ссылка на объект IDisposable?

Есть ли метод или какой-то другой легкий способ проверить, есть ли ссылка на удаленный объект? PS - Это просто любопытство (спи спокойно, а не в продакшене). Да, я знаю, что могу поймать это ObjectDisposedExceptionпри попытке доступа к члену объекта....

83
ASP MVC: когда вызывается IController Dispose ()?

Я прохожу большой рефакторинг / настройку скорости одного из моих больших приложений MVC. Он был развернут в производственной среде в течение нескольких месяцев, и я начинал получать таймауты на ожидание подключений в пуле подключений. Я отследил проблему до того, что соединения не удаляются...