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.

Применяется к

См. также раздел