Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2015, 21:46   #1
ts-alan
Форумчанин
 
Регистрация: 07.07.2010
Сообщений: 825
Сообщение Освобождение Управляемых ресурсов

1)Все знают что dispose() высовобождает неуправлямы ресурсы,а как высвободить управляемы?
2)Сборщик Мусора высвобождает управляемые и неуправляемы ресурсы?
ts-alan вне форума Ответить с цитированием
Старый 07.11.2015, 04:17   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от ts-alan Посмотреть сообщение
2)Сборщик Мусора высвобождает управляемые и неуправляемы ресурсы?
Сборщик мусора освобождает только управляемые ресурсы. Неуправляемые ресурсы необходимо освобождать вручную.
Streletz вне форума Ответить с цитированием
Старый 07.11.2015, 08:52   #3
ts-alan
Форумчанин
 
Регистрация: 07.07.2010
Сообщений: 825
По умолчанию

Цитата:
Сборщик мусора освобождает только управляемые ресурсы. Неуправляемые ресурсы необходимо освобождать вручную.
Сборщик мусора вызывает финализатор, в котором можно вызвать метод dispose?Так?
ts-alan вне форума Ответить с цитированием
Старый 07.11.2015, 15:12   #4
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

любой метод можно вызвать. хоть диспозе назовите хоть ультрадиспозе, хоть суперпуперметод, вызываются одинаково, только к освобождению не имеет отношения.
come-on вне форума Ответить с цитированием
Старый 07.11.2015, 23:42   #5
ts-alan
Форумчанин
 
Регистрация: 07.07.2010
Сообщений: 825
По умолчанию

Какую реализацию по умолчанию имеет финалайз?Тобишь если его не переопределять
ts-alan вне форума Ответить с цитированием
Старый 08.11.2015, 06:48   #6
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от ts-alan Посмотреть сообщение
Тобишь если его не переопределять
Какова изначальная постановка задачи? Какой цели Вы хотите добиться?
Streletz вне форума Ответить с цитированием
Старый 08.11.2015, 10:03   #7
ts-alan
Форумчанин
 
Регистрация: 07.07.2010
Сообщений: 825
По умолчанию

Цитата:
Какова изначальная постановка задачи? Какой цели Вы хотите добиться?
Просто для себя хочу лучше понять работу с неуправлямы и упраляемы ресурсами.Получается освободить неуправляемые ресурсы можно через dispose,управляемые сборщиком мусора.Однако сборщик мусора может высвобождать неуправляемые ресурсы-если мы переопределим финалайз и там напишем их высвобождение.Я правильно понимаю?ДА еще маленький вопрос неуправляемые ресурсы это ресурсы вне платформы .net?
ts-alan вне форума Ответить с цитированием
Старый 08.11.2015, 11:41   #8
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Цитата:
Получается освободить неуправляемые ресурсы можно через dispose
ерунда, освобождение идет тогда когда вы освобождаете, никакой диспозе сам не освободит.
Цитата:
Однако сборщик мусора может высвобождать неуправляемые ресурсы-если мы переопределим финалайз и там напишем их высвобождение.Я правильно понимаю?
нет, никакой финалайз не освобождает ничего. Освобождет сборщик, финалайз просто метод, с некоторым условием.

Почему бы вам не почитать мануал? начиная сначала
come-on вне форума Ответить с цитированием
Старый 08.11.2015, 12:27   #9
ts-alan
Форумчанин
 
Регистрация: 07.07.2010
Сообщений: 825
Сообщение

Цитата:
ерунда, освобождение идет тогда когда вы освобождаете, никакой диспозе сам не освободит.
если чесно не вьехал это как?высвоождаем же через dispose?
Цитата:
нет, никакой финалайз не освобождает ничего. Освобождет сборщик, финалайз просто метод, с некоторым условием.
Для чего тогда метод финалайз ?И почему их сравнивают?чет не понял
ts-alan вне форума Ответить с цитированием
Старый 08.11.2015, 12:37   #10
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

потому что читать надо а вы не хотите
поясните как вы себе представляете как высвобождает диспозе или финалайз?

а еще мне кажеться вы не понимаете что такое управляемые и не управляемые ресурсы?

IDisposable это интерфейс который просто дает программисту некоторое "облегчение" при написании, ну и для поддержки. В остальном на него можно забить и не использовать, от этого ресурсы не перестанут освобождаться, при правильном использовании.

я могу написать примерно так
Цитата:
using (XmlReader reader = XmlReader.Create("блабла.xml")) {
// бла бла
}
или так
Цитата:
XmlReader reader = XmlReader.Create("блабла.xml"))
// бла бла
...
reader.Close();
а теперь отгадайте как в 2 случае произошло освобождение без диспоза?
come-on вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CreateEvent. Освобождение ресурсов xrob Общие вопросы Delphi 1 15.04.2014 18:35
Взаимодействией управляемых и неуправляемых библиотек inmyacid Общие вопросы .NET 4 10.10.2013 17:10
Массивы в управляемых классах. Проблема. daNtz Visual C++ 0 06.04.2013 17:07
Концепция управляемых данными приложений. the_deer_one Свободное общение 6 25.10.2012 19:17
Освобождение ресурсов TMediaPlayer regman Мультимедиа в Delphi 4 19.07.2009 20:36