Запитання з тегом «idisposable»

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

19
Правильне використання інтерфейсу IDisposable
Я знаю з читання документації Microsoft, що "первинне" використанняIDisposable інтерфейсу є очищення некерованих ресурсів. Для мене "некерований" означає такі речі, як підключення до бази даних, сокети, ручки вікон тощо. Але я бачив код, де Dispose()метод реалізований для вільного керування ресурсів, що мені здається зайвим, оскільки збирач сміття повинен дбати що …

13
Використання методу Finalize / Dispose у C #
C # 2008 Я над цим працюю вже деякий час, і я все ще плутаюсь щодо використання методів доопрацювання та розпорядження кодом. Мої запитання нижче: Я знаю, що нам потрібен лише фіналізатор під час розміщення некерованих ресурсів. Однак якщо є керовані ресурси, які здійснюють дзвінки на некеровані ресурси, чи все-таки …

12
Чи повинні HttpClient та HttpClientHandler розміщуватися між запитами?
System.Net.Http.HttpClient і System.Net.Http.HttpClientHandler в .NET Framework 4.5 реалізують IDisposable (через System.Net.Http.HttpMessageInvoker ). Документація usingзаяви: Як правило, коли ви використовуєте об'єкт, що не використовується, ви повинні оголосити його та використати в операторі, що використовує. У цій відповіді використовується така модель: var baseAddress = new Uri("http://example.com"); var cookieContainer = new CookieContainer(); using …


10
Чи слід розпоряджатися () DataSet і DataTable?
DataSet і DataTable реалізують IDisposable, тому, за звичайними найкращими методами, я повинен називати їхні методи Dispose (). Однак, з того, що я читав до цих пір, DataSet і DataTable насправді не мають ніяких керованих ресурсів, тому Dispose () насправді не робить багато. Крім того, я не можу просто використовувати, using(DataSet …


5
Чи буде викликано Dispose () у використовуваному операторі з нульовим об'єктом?
Чи безпечно використовувати usingоператор на (потенційно) нульовому об'єкті? Розглянемо наступний приклад: class Test { IDisposable GetObject(string name) { // returns null if not found } void DoSomething() { using (IDisposable x = GetObject("invalid name")) { if (x != null) { // etc... } } } } Чи гарантовано, що Disposeбуде …
179 c#  idisposable  using 

5
Чи потрібно дзвонити Close () або Dispose () для потокових об'єктів?
Класи, такі як Stream, StreamReaderі StreamWriterт.д. реалізує IDisposableінтерфейс. Це означає, що ми можемо викликати Dispose()метод на об'єктах цих класів. Вони також визначили publicметод, який називається Close(). Тепер це мене бентежить, як мені зателефонувати, коли я закінчу з об’єктами? Що робити, якщо я дзвоню обом? Мій поточний код такий: using (Stream …


9
Чи почне збирач сміття IDisposable.Sispose for me?
Шаблон .NET IDisposable передбачає, що якщо ви пишете фіналізатор і реалізуєте IDisposable, ваш фіналізатор повинен явно викликати розпорядження. Це логічно, і це я завжди робив у рідкісних ситуаціях, коли фіналізатор є гарантованим. Однак, що станеться, якщо я просто це роблю: class Foo : IDisposable { public void Dispose(){ CloseSomeHandle(); } …

5
Що станеться, якщо я повернусь до закінчення використання оператора? Чи буде називатися розпорядження?
У мене такий код using(MemoryStream ms = new MemoryStream()) { //code return 0; } dispose()Метод викликається в кінці usingзаяви брекет }правильно? Оскільки я returnдо кінця usingвиписки, чи буде MemoryStreamоб’єкт розміщений належним чином? Що тут відбувається?

7
Як розпізнати, чи не використовується посилання на об'єкт, що одноразово використовується?
Чи існує метод, або якийсь інший легкий спосіб, щоб перевірити, чи посилання на віддалений об'єкт? PS - Це просто курйоз (спати добре, не в виробничому коді). Так, я знаю, що можу зрозуміти це ObjectDisposedExceptionпри спробі отримати доступ до члена об’єкта.
85 c#  .net  dispose  idisposable 

2
ASP MVC: Коли викликається IController Dispose ()?
Я проходжу великий рефакторинг / налаштування швидкості одного з моїх великих додатків MVC. Його впроваджують у виробництво вже кілька місяців, і я починав отримувати тайм-аути, очікуючи на з’єднання в пулі з'єднань. Я відслідковував проблему до з’єднань, які не утилізувались належним чином. У світлі цього я відтоді вніс цю зміну до …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.