|
|
|
Как освобождать память после выделения оператором New
|
|||
|---|---|---|---|
|
#18+
Мож я не прав, думаю по аналогии с С++ там всегда при выделении памяти оператором New, когда обьект уже не нужен память нужно было освобождать оператором Delete, как освобождать память в VBA? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 14:29 |
|
||
|
Как освобождать память после выделения оператором New
|
|||
|---|---|---|---|
|
#18+
set ... = nothing ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 14:31 |
|
||
|
Как освобождать память после выделения оператором New
|
|||
|---|---|---|---|
|
#18+
set ObjectName=Nothing ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 14:31 |
|
||
|
Как освобождать память после выделения оператором New
|
|||
|---|---|---|---|
|
#18+
set myobject = nothing вроде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 14:32 |
|
||
|
Как освобождать память после выделения оператором New
|
|||
|---|---|---|---|
|
#18+
как мы все хором ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 14:33 |
|
||
|
Как освобождать память после выделения оператором New
|
|||
|---|---|---|---|
|
#18+
set obj=nothing Только были на форуме мнения, что это замедляет работу, так сказать, баг Аксеса. Поиском можно найти, наверное... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 14:34 |
|
||
|
Как освобождать память после выделения оператором New
|
|||
|---|---|---|---|
|
#18+
Всему хору спасиб балшёй ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 14:34 |
|
||
|
Как освобождать память после выделения оператором New
|
|||
|---|---|---|---|
|
#18+
Апаздал! и не только я :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 14:34 |
|
||
|
Как освобождать память после выделения оператором New
|
|||
|---|---|---|---|
|
#18+
Надеюсь только что у 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 15:13 |
|
||
|
Как освобождать память после выделения оператором New
|
|||
|---|---|---|---|
|
#18+
>>VB ведет счетчик ссылок на объект и НЕ выгружает их из памяти, пока счетчик не обнулится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 15:15 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32398190&tid=1676849]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
86ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 426ms |

| 0 / 0 |
