Stream.Close Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Закрывает текущий поток и освобождает все ресурсы (например, сокеты и дескрипторы файлов), связанные с текущим потоком. Вместо вызова этого метода убедитесь, что поток правильно удален.
public:
virtual void Close();
public virtual void Close();
abstract member Close : unit -> unit
override this.Close : unit -> unit
Public Overridable Sub Close ()
Комментарии
Этот метод вызывается Dispose, указывая true , чтобы освободить все ресурсы. Вам не нужно специально вызывать Close метод. Вместо этого убедитесь, что каждый Stream объект правильно удален. Можно объявить объекты Stream в блоке using (или Using блоке в Visual Basic), чтобы обеспечить удаление потока и всех его ресурсов или явно вызвать метод Dispose.
Очистка потока не будет очищать его базовый кодировщик, если вы явно не вызываете реализацию Flush или Close.
AutoFlush Значение параметра true означает, что данные будут удалены из буфера в поток, но состояние кодировщика не будет удалено. Это позволяет кодировщику сохранять состояние (частичные символы), чтобы кодировать следующий блок символов правильно. Этот сценарий влияет на UTF8 и UTF7, где некоторые символы могут быть закодированы только после того, как кодировщик получает смежные символы или символы.
Попытки управления потоком после закрытия потока могут вызвать исключение ObjectDisposedException.
Примечания для тех, кто наследует этот метод
В производных классах не переопределяете Close() метод, а поместите всю Stream логику очистки в Dispose(Boolean) метод. Дополнительные сведения см. в разделе "Реализация метода Dispose".