powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как закрыть коннекшин автоматически?
21 сообщений из 46, страница 2 из 2
Как закрыть коннекшин автоматически?
    #39028986
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степигыгы.. хотите кода?
Гыгыгы... Хатим, хатим, хатим! Коды в студию!
...
Рейтинг: 0 / 0
Как закрыть коннекшин автоматически?
    #39028991
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи,
Только не такой пример, где в классе имплементирующем интерфейс IDisposable метод Dispose пустой, а после этого оказывается, что отчего-то ресурсы не высвобождаются, лажно? :)
...
Рейтинг: 0 / 0
Как закрыть коннекшин автоматически?
    #39029018
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понятно зачем ждать высвобождения ресурсов GC после того, когда функция уже исполнилась? Закончилась ну ли ладно - освобождаем. Помнится в C++ - объекты двух типов: в куче, которые создаются явно через "new" и их уничтожать нужно тоже руками "delete" и стековые, которые создаются и уничтожаются неявно при входе и выходе из метода. И никаких тебе IDisposable :)

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
1.
void test()
{
   Object1 *obj = new Object1();
   .
   .
   .
   delete obj;
}

2.
void test()
{
   Object1 obj;
   .
   .
   .
}

...
Рейтинг: 0 / 0
Как закрыть коннекшин автоматически?
    #39029022
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter, код GC теперь открыт. Фпирёд, если что-то не понятно :)
...
Рейтинг: 0 / 0
Как закрыть коннекшин автоматически?
    #39029026
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANARelic Hunter, код GC теперь открыт. Фпирёд, если что-то не понятно :)Для стековых объектов как и переменных GC не нужен, в том то и дело. push/pop все ушло. Вы помните хоть как функции вызываются на самом деле?
...
Рейтинг: 0 / 0
Как закрыть коннекшин автоматически?
    #39029028
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterskyANARelic Hunter, код GC теперь открыт. Фпирёд, если что-то не понятно :)Для стековых объектов как и переменных GC не нужен, в том то и дело. push/pop все ушло. Вы помните хоть как функции вызываются на самом деле?

Ты перепутал 2 абсолютно разных мира.

Да и в С++ в похожем на C# коде, помаши ручкой RAII:

Код: plaintext
1.
2.
3.
4.
5.
{
   Foo* foo1 = new Foo ();

   // упс... утетечка )))
}



Альтернативы

Foo foo();

в C# нет, с чего ты решил, что интерфейс IDisposable превратит любой обычный класс в какой-то волшебный и особенный, который пятой точкой чувствует когда программер хочет, чтобы он самоуничтожился?
...
Рейтинг: 0 / 0
Как закрыть коннекшин автоматически?
    #39029030
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterДля стековых объектов как и переменных GC не нужен

Не проблема, для struct-переменных в C# GC итак не используется, всё често сидит в стеке. Какие проблемы? Осознание когда придёт?

Рекомендую Рихтера. Снимет все вопросы, как рукой.
...
Рейтинг: 0 / 0
Как закрыть коннекшин автоматически?
    #39029031
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степитам всего 8 -10 строчек

ну што там с хакирскими кодами? кода уже? Пентагон ждёт ))
...
Рейтинг: 0 / 0
Как закрыть коннекшин автоматически?
    #39029032
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
нарисовал и отправил мсу пару примеров - подписывайтесь ))
...
Рейтинг: 0 / 0
Как закрыть коннекшин автоматически?
    #39029033
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttв C# нет, с чего ты решил, что интерфейс IDisposable превратит любой обычный класс в какой-то волшебный и особенный, который пятой точкой чувствует когда программер хочет, чтобы он самоуничтожился? Ты помнишь, как COM освобождается? Отож... Простой подсчет ссылок на интерфейс (reference count). Ссылок нет - самоуничтожается.
...
Рейтинг: 0 / 0
Как закрыть коннекшин автоматически?
    #39029041
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterТы помнишь, как COM освобождается? Отож... Простой подсчет ссылок на интерфейс (reference count). Ссылок нет - самоуничтожается.

Помню. А ещё помню, что COM equals АД, не смотря на попытки избежать жопы с помощью гуидов и такой-то матери. Подсчёт ссылок в C++ есть через шаблонные контейнеры ссылок, и всё равно бардак, и всё равно утечки и прочий треш.
...
Рейтинг: 0 / 0
Как закрыть коннекшин автоматически?
    #39029081
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterПростой подсчет ссылок на интерфейс (reference count)
особенно хорош при наличии циклических ссылок
...
Рейтинг: 0 / 0
Как закрыть коннекшин автоматически?
    #39029118
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиhVostt,
нарисовал и отправил мсу пару примеров - подписывайтесь ))
Congratulations, mister agent 007! We are not sure will will get into it though. But well done anyway!
...
Рейтинг: 0 / 0
Как закрыть коннекшин автоматически?
    #39029133
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterskyANARelic Hunter, код GC теперь открыт. Фпирёд, если что-то не понятно :)Для стековых объектов как и переменных GC не нужен, в том то и дело. push/pop все ушло. Вы помните хоть как функции вызываются на самом деле?Вот оно оказывается к чему клоните. А что в своих примерах кода Вы считаете стековыми объектами?
...
Рейтинг: 0 / 0
Как закрыть коннекшин автоматически?
    #39029148
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,
Имхо вы наделяете паттерн диспозе какими то мифическими свойствами ( как и впрочем 80% дотнетчиков), он к уборщику мусора не имеет прямого отношения, лично я бы сказал никакого.
он не удаляет объект из памяти, нет у него таких полномочий, это обыкновенный банальный метод, где как правило принято
освобождать ресурсы захваченный на той стоне холма, там даже могут быть исключения ( что для уборщика - п....ц), сам объект
удалится на общих основаниях без использования финализатора ( классическая схема).
...
Рейтинг: 0 / 0
Как закрыть коннекшин автоматически?
    #39029169
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterskyANARelic Hunter, код GC теперь открыт. Фпирёд, если что-то не понятно :)Для стековых объектов как и переменных GC не нужен, в том то и дело. push/pop все ушло. Вы помните хоть как функции вызываются на самом деле?Конечно помним, и радуемся, что тёмные времена ушли навсегда.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
char buf[100];
getString(buf);

......

void getString(char *buf)
{
    strcpy(buf, "Result");
}
...
Рейтинг: 0 / 0
Как закрыть коннекшин автоматически?
    #39029217
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи,

так где код то? что using не вызовет Dispose, у класса реализующий паттерн. ибо using всего навсего сахар преобразующийся в
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
MyDisposableObject obj = new MyDisposableObject()
try
{
    obj.Use();
}
finally
{
    if (obj!=null) obj.Dispose();
}


п.с.
при этом объект естественно не удалится тут же, это работа уже CG и когда он там сработает, в диспозе как правило закрывают файлы, конекшен к бд и прочим ресурсам всего навсего.
вообще с этим патерном можно не парится через https://github.com/Fody/Usable но на продакшене я предпочитаю ручками, а в демках почему бы и нет
...
Рейтинг: 0 / 0
Как закрыть коннекшин автоматически?
    #39029232
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,

я тут подумал, а ведь он может не вызывать, если в конструкторе навернулось что то )
...
Рейтинг: 0 / 0
Как закрыть коннекшин автоматически?
    #39029245
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,
давай пойдем дальше, конструктор сработал захват произошел
ексепшен может вывалиться при инициализации чего то в этом объекте, х с ним
если простая инициализация, она попадет в try, а если по месту без проверки this
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 class Foo:IDisposable
        {
            public int Index
            {
                set { throw new Exception(); }
            }

            public void Dispose()
            {
               Console.WriteLine("dddd");
            }
        }
//Foo dd=new Foo{Index = 3}


и он будет болтаться бесхозный в куче
...
Рейтинг: 0 / 0
Как закрыть коннекшин автоматически?
    #39029250
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи,
можно сказать что такой тип изобрела какая та жопа,
но подляны могут быть и с фундаментальными типами
кто мне запретит сделать так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 class Foo:IDisposable
        {
            public Foo getInstans()
            {
                Foo res = new Foo();
                throw new Exception();
                return res;
            }
            public void Dispose()
            {
               Console.WriteLine("dddd");
            }
        }
// using ( Foo dd=new Foo().getInstans())
...
Рейтинг: 0 / 0
Как закрыть коннекшин автоматически?
    #39029251
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи,
кто запретит? интеллект и тесты. имхо проблема выдуманая
...
Рейтинг: 0 / 0
21 сообщений из 46, страница 2 из 2
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как закрыть коннекшин автоматически?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]