Описание тега suppressfinalize
Этот метод устанавливает бит в заголовке объекта obj, который среда выполнения проверяет при вызове финализаторов. Объекты, реализующие интерфейс IDisposable, могут вызывать этот метод из реализации IDisposable.Dispose объекта, чтобы предотвратить вызов сборщиком мусора Object.Finalize для объекта, которому он не требуется.
1
ответ
Могу ли я иметь случай, когда GC.SuppressFinalize имеет какой-либо существенный эффект, пожалуйста?
Да я умею пользоваться GC.SuppressFinalize() - это объясняется здесь. Я много раз читал, что с помощью GC.SuppressFinalize() удаляет объект из очереди финализации, и предполагается, что это хорошо, потому что освобождает GC от дополнительной работы,…
15 фев '18 в 14:05
5
ответов
Язык C#: сборка мусора, SuppressFinalize
Я читаю "Язык C#", 4-е издание, в нем говорится о сборке мусора, как показано ниже: "BILL WAGNER: следующее правило является важным отличием между C# и другими управляемыми средами. До завершения работы приложения вызывается деструктор для всех его …
11 июл '11 в 14:53
0
ответов
Это как "правильно реализовать IDisposable"?
Я запустил Анализ кода на одном из моих проектов, и он дал мне два эффекта, а именно: CA1063 Внедрение IDisposable правильно Предоставьте переопределяемую реализацию Dispose(bool) в 'UserStore' или пометьте тип как закрытый. Вызов Dispose(false) дол…
09 июл '14 в 18:04
2
ответа
Накладные расходы на наличие финализатора - с / без SuppressFinalize в Dispose
Предполагая следующее: Класс управляется только членами. Некоторые участники реализуют IDisposable, Класс sealed - класс не может наследовать и добавлять неуправляемые ресурсы. Объект используется внутри using утверждение - то есть Dispose() называе…
19 мар '15 в 09:12
5
ответов
Когда я должен использовать GC.SuppressFinalize()?
В.NET, при каких обстоятельствах я должен использовать GC.SuppressFinalize()? Какие преимущества дает мне этот метод?
29 сен '08 в 22:41
3
ответа
ReRegisterForFinalize SuppressFinalize пример из реальной жизни
Я только что читал эту статью Джеффри Рихтера " Сборка мусора: автоматическое управление памятью в Microsoft .NET Framework", и я не мог придумать ни одного реального примера использования ReRegisterForFinalize или же SuppressFinalize, Кто-нибудь мо…
22 окт '11 в 17:21
1
ответ
В TimedLock зачем нужен SuppressFinalize(tl.leakDetector)?
http://www.interact-sw.co.uk/iangblog/2004/04/26/yetmoretimedlocking Зачем нужна эта линия? System.GC.SuppressFinalize (tl.leakDetector); Я бы подумал, что финализатор не должен подавляться для запуска кода, который оповещает оставленный монитор. О…
09 мар '10 в 19:35
1
ответ
Вызов SuppressFinalize несколько раз
Есть ли обратная сторона звонка GC.SuppressFinalize(object) многократно?защищенный Dispose(bool) метод шаблона dispose проверяет, был ли он вызван ранее, но такой проверки нет Dispose() метод. public void Dispose() { Dispose(true); GC.SuppressFinali…
15 сен '12 в 10:24
1
ответ
Как следует утилизировать Dispose в классах, которые реализуют IDependencyResolver и IDependencyScope?
Я запустил анализ кода в своем проекте веб-API, в котором я пытаюсь реализовать IoC и DI с использованием Castle Windsor, и он обнаружил четыре проблемы. Все четыре найденных объекта были в WindsorDependencyResolver, и все четыре "Правильно реализов…
09 янв '14 в 00:07
2
ответа
Должен ли я реализовать GC.SupressFinalize для IDisposable И Finalize?
Контрольный список проверки кода в моем новом клиентском месте имеет следующее - Класс, реализующий Dispose и Finalize, должен иметь вызов GC.SupressFinalize в реализации Dispose Зачем? Разве это не должно читаться как класс, реализующий интерфейс I…
05 янв '11 в 17:32
5
ответов
IDisposable GC.SuppressFinalize(это) местоположение
Я использую шаблон реализации по умолчанию (шаблон) для моего кода. фрагмент кода: public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } protected virtual void Dispose(bool isDisposing) { if (!this.disposed) { if (isDisposing) { //clea…
03 мар '09 в 07:49
5
ответов
Почему мы должны вызывать SuppressFinalize, когда у нас нет деструктора
У меня есть несколько Вопросов, на которые я не могу получить правильный ответ. 1) Почему мы должны вызывать SuppressFinalize в функции Dispose, когда у нас нет деструктора. 2) Утилизация и финализация используются для освобождения ресурсов перед сб…
09 апр '10 в 06:14
1
ответ
Какой класс вызывает SuppressFinalize в своем конструкторе, так что ваш вызов dispose бесполезен?
Есть некоторые классы, такие как DataTable, которые уже вызвали SuppressFinalize в своем конструкторе, и поэтому нет смысла вызывать dispose/use используя его. (потому что утилизировать - выпускать раньше, но выпускать нечего) Итак, я хочу узнать сп…
25 окт '11 в 04:14
5
ответов
Какова цель GC.SuppressFinalize(this) в методе Dispose()?
У меня есть следующий код: public void Dispose() { if (_instance != null) { _instance = null; // Call GC.SupressFinalize to take this object off the finalization // queue and prevent finalization code for this object from // executing a second time.…
14 июн '10 в 15:38
1
ответ
Почему не следует вызывать Finalizer после ручного вызова деструктора (путем удаления) в C++ CLI
После ссылки на эту статью, в которой говорится о разнице между деструктором и финализатором в CLI C++, я удивляюсь, почему компилятор добавил несколько экземпляров. подавить финал в деструкторе? Функция завершения дозы не означает "В конце концов, …
24 июл '12 в 15:51
1
ответ
Почему мы все еще можем использовать удаленный объект?
У меня есть класс DisposedPatterenDemo, унаследованный от IDisposable. Я удалил объект этого класса, а затем, после того как он попытается вызвать Method() того же класса, я получаю возвращаемое значение из метода, но obj уже удален. var res=obj.Met…
20 фев '20 в 12:26
0
ответов
Можно ли упростить одноразовый шаблон C#, когда задействованы только _неуправляемые_ ресурсы?
(Примечание: этот вопрос связан с вызовом GC.SuppressFinalize() из финализатора, но не является дубликатом, поскольку этот вопрос явно касается случая отсутствия управляемых ресурсов, тогда как этот вопрос явно касается как управляемых, так и неупра…
07 июл '19 в 20:18
1
ответ
Имеет ли эффект GC.SuppressFinalize(), если у объекта нет Finalizer?
Я знаю, что с какой-то версии StreamWriterпрекратил поддержку Finalizer, но в исходном коде я вижу, что он вызывает GC.SuppressFinalize(this). Почему так звонит? Я думал, что это на самом деле только для объекта, у которого есть Finalizer. Обновлять…
21 дек '20 в 11:03