|
![]() |
#1 |
Участник
|
У меня так же.
Могу предположить, что одно соединение при создании отводится сборщику мусора. Еще не смотрел, но похоже в 2009-м что-то подредактировали в нем. По крайней мере было бы логично при создании объекта сохранять указатель на него в списке. И через определенное время опрашивать список на предмет usageCount(). Если кол-во соединений=1 (то есть только сам сборщик), то удалять из памяти. Возможно, раньше usageCount() возвращал на 1 меньше, чтобы скрыть лишнее соединение. Это только мое предположение. Просто фантазии ![]() Но если я хоть частично прав, то не факт, что и дальше эта фунция будет возвращать такое количество. ТО есть могут снова начать скрывать лишнее соединение. |
|
![]() |
#2 |
Участник
|
Не похоже на сборщик мусора, поскольку, как выяснилось, этот глюк не распространяется на наследников Object. На мой взгляд, выявленная "нестыковка" нигде не должна приводить к ошибочным ситуациям, поскольку мне не позволяет фантазия придумать ситуацию, когда бы в коде использовался метод usageCount "чистого" Object.
|
|
![]() |
#3 |
Участник
|
|
|
![]() |
#4 |
Участник
|
Переменная типа Object может ссылаться на экземпляр любого класса, что используется очень часто по всей системе. Думаю, что если бы Object был абстрактным, то таких присваиваний нельзя бы было производить.
|
|
![]() |
#5 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: NoTimeToCry (1). |
![]() |
#6 |
Участник
|
Скорее всего, да, я не прав. На обычных классах такое прокатывает, но Object - системный, и быть может (мое дикое предположение) у него свои есть особенности.
|
|
![]() |
#7 |
Участник
|
похоже, что это странное поведение метода usageCount() распростроняется на все системные классы , наследуемые от Оbject (проверил на BinData, Binary, TextIO).
Интересно, а в AX 2012 эффект сохранился? |
|