Автоматическая сборка мусора: ликвидация утечки памяти
У программистов,
работающих на Visual Basic, всегда
возникали проблемы с утечкой
памяти из-за так называемых циклических
ссылок (ситуация, при которой
объект А ссылается на объект В, а
объект В ссылается на объект А).
Если появление циклических ссылок
было обусловлено логикой программы,
компилятор VB не распознавал их, в
результате чего память, занимаемая
этими объектами, не освобождалась.
Система сборки мусора, встроенная
в .NET CLR, решает проблему циклических
ссылок иначе — интеллектуальный
алгоритм обнаруживает циклические
ссылки, разрывает их и освобождает
занимаемую память. Конечно, за
дополнительные возможности
приходится платить; достоинства и
недостатки автоматической сборки
мусора рассматриваются в главе 4.
Во всех версиях
Visual Basic использовался механизм
обработки ошибок, появившийся в
самой первой версии BASIC (с тех пор
прошло почти 40 лет!). Мягко говоря, у
него есть недостатки. А если
выражаться откровенно,
использование в современном языке
программирования команды On Error Goto,
неимоверно усложняющей логику
программы, — сущий абсурд. В VB .NET
реализована структурная
обработка ошибок (см. главу 7),
самый современный и мощный
механизм обработки ошибок.
Многопоточная
программа выполняет несколько
функций одновременно. Например, в
почтовых клиентах во время приема
новых сообщений можно читать
старую электронную почту.
Пользователи ценят подобные
возможности, но в прежних версиях VB
написание многопоточных
приложений было очень непростой
задачей. В главе 10 мы рассмотрим
достоинства и недостатки этой
новой, чрезвычайно мощной
возможности VB .NET.