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

Выполняет определяемые приложением задачи, связанные с освобождением, освобождением или сбросом неуправляемых ресурсов.


15
Завершить против утилизации
Почему некоторые люди используют Finalizeметод над Disposeметодом? В каких ситуациях вы будете использовать Finalizeметод поверх Disposeметода и наоборот?
215 c#  dispose 


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

7
Как предотвратить распространение 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 …

9
Будет ли сборщик мусора вызывать IDisposable. Утилизировать для меня?
.NET IDisposable Pattern подразумевает, что если вы пишете финализатор и внедряете IDisposable, ваш финализатор должен явно вызывать Dispose. Это логично, и это то, что я всегда делал в тех редких ситуациях, когда требуется финализатор. Однако, что произойдет, если я просто сделаю это: class Foo : IDisposable { public void Dispose(){ …

3
Считается ли приемлемым не вызывать Dispose () для объекта задачи TPL?
Я хочу запустить задачу в фоновом потоке. Не хочу ждать завершения задач. В .net 3.5 я бы сделал это: ThreadPool.QueueUserWorkItem(d => { DoSomething(); }); В .net 4 рекомендуется использовать TPL. Я видел рекомендуемый общий шаблон: Task.Factory.StartNew(() => { DoSomething(); }); Однако StartNew()метод возвращает Taskобъект, который реализует IDisposable. Похоже, что люди, …

7
Удаление пользовательских элементов управления WPF
Я создал настраиваемый пользовательский элемент управления WPF, который предназначен для использования третьей стороной. У моего элемента управления есть закрытый член, который является одноразовым, и я хотел бы убедиться, что его метод удаления всегда будет вызываться после закрытия содержащего окно / приложение. Однако UserControl не является одноразовым. Я попытался реализовать интерфейс …
119 c#  .net  wpf  user-controls  dispose 

5
Есть ли способ закрыть StreamWriter, не закрывая его BaseStream?
Моя основная проблема в том, что при usingвызове Disposea StreamWriterон также устраняет BaseStream(ту же проблему с Close). У меня есть обходной путь, но, как видите, он включает в себя копирование потока. Есть ли способ сделать это без копирования потока? Цель этого - получить содержимое строки (изначально считанной из базы данных) …
117 c#  stream  dispose 

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

7
В чем разница между использованием IDisposable и деструктора в C #?
Когда я могу реализовать IDispose в классе, а не деструктор? Я прочитал эту статью , но все еще не понимаю сути. Я предполагаю, что если я использую IDispose для объекта, я могу явно «разрушить» его, а не ждать, пока сборщик мусора сделает это. Это верно? Означает ли это, что я …
101 c#  .net  dispose  destructor 

7
Как узнать, удалена ли ссылка на объект IDisposable?
Есть ли метод или какой-то другой легкий способ проверить, есть ли ссылка на удаленный объект? PS - Это просто любопытство (спи спокойно, а не в продакшене). Да, я знаю, что могу поймать это ObjectDisposedExceptionпри попытке доступа к члену объекта.
86 c#  .net  dispose  idisposable 
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.