powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как освобождать память после выделения оператором New
11 сообщений из 11, страница 1 из 1
Как освобождать память после выделения оператором New
    #32398032
Gedeon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мож я не прав, думаю по аналогии с С++ там всегда при выделении памяти оператором New, когда обьект уже не нужен память нужно было освобождать оператором Delete, как освобождать память в VBA?
...
Рейтинг: 0 / 0
Как освобождать память после выделения оператором New
    #32398040
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
set ... = nothing
...
Рейтинг: 0 / 0
Как освобождать память после выделения оператором New
    #32398041
Alex73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
set ObjectName=Nothing
...
Рейтинг: 0 / 0
Как освобождать память после выделения оператором New
    #32398042
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
set myobject = nothing вроде
...
Рейтинг: 0 / 0
Как освобождать память после выделения оператором New
    #32398046
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как мы все хором )
...
Рейтинг: 0 / 0
Как освобождать память после выделения оператором New
    #32398050
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
set obj=nothing

Только были на форуме мнения, что это замедляет работу, так сказать, баг Аксеса.
Поиском можно найти, наверное...
...
Рейтинг: 0 / 0
Как освобождать память после выделения оператором New
    #32398053
Gedeon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всему хору спасиб балшёй
...
Рейтинг: 0 / 0
Как освобождать память после выделения оператором New
    #32398055
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Апаздал!

и не только я :))
...
Рейтинг: 0 / 0
Как освобождать память после выделения оператором New
    #32398148
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надеюсь только что у Gedeon не сложилось неправильного мнения, что конструкцией Set MyObject=Nothing он безусловно освобождает память. Чтобы долго не объяснять:

Dim MyObject1 as MyClass
Dim MyObject2 as MyClass

' создаем объект, выделяя в памяти место
Set MyObject1 = New MyClass

' устанавливаем еще одну ссылку на тот же самый объект
Set MyObject2 = MyObject1

Set MyObject1 = Nothing

В результате этого кода объект не будет удален из памяти, потому что только одна из двух ссылок была обнулина (Nothing), а вторая все еще указывает на него. VB ведет счетчик ссылок на объект и выгружает их из памяти, пока счетчик не обнулится.

Т.о. можно очень легко получить утечку памяти, если не следить за всеми своими объектными переменными.
Для освобождения памяти в нашем примере, необходимо написать:
Set MyObject1 = Nothing
Set MyObject2 = Nothing
...
Рейтинг: 0 / 0
Как освобождать память после выделения оператором New
    #32398152
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>VB ведет счетчик ссылок на объект и НЕ выгружает их из памяти, пока счетчик не обнулится.
...
Рейтинг: 0 / 0
Как освобождать память после выделения оператором New
    #32398190
Gedeon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ценное дополнение, однако у меня необходимости с такой манипуляцией обьектов нет, но все равно спасибо, буду знать
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как освобождать память после выделения оператором New
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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