См. Здесь Как избежать проблем с оператором использования
Посмотрел на IL и using
делает это:
try
{
}finally
{
((System.IDisposable)obj).Dispose();
}
Что означает, что ваш поток будет удален независимо от того, что, кроме исключения (если это происходит в
блок try) останется в стеке, поэтому может привести к сбою приложения, если вы не позаботитесь о нем.
Итак:
«Ссылка на объект MemoryStream, следовательно, теряется. Нужен ли в этом сценарии блок try / finally (или оператор using)?» - Это то же самое
Теперь действительно интересно, что произойдет, если метод Dispose по какой-то причине завершится неудачно.
у вас дыра в безопасности IE :) Шучу:)