Compartir a través de


Stream.Close Método

Definición

Cierra la secuencia actual y libera todos los recursos (como sockets e identificadores de archivo) asociados a esta. En lugar de llamar a este método, asegúrese de que la secuencia se desecha correctamente.

public:
 virtual void Close();
public virtual void Close ();
abstract member Close : unit -> unit
override this.Close : unit -> unit
Public Overridable Sub Close ()

Comentarios

Este método llama Disposea , especificando true para liberar todos los recursos. No es necesario llamar específicamente al Close método . En su lugar, asegúrese de que todos los Stream objetos se eliminen correctamente. Puede declarar Stream objetos dentro de un using bloque (o Using bloque en Visual Basic) para asegurarse de que la secuencia y todos sus recursos se eliminan, o puede llamar explícitamente al Dispose método .

El vaciado de la secuencia no vaciará su codificador subyacente a menos que llame explícitamente a una implementación de Flush o Close. Establecer AutoFlush en true significa que los datos se vaciarán del búfer a la secuencia, pero el estado del codificador no se vaciará. Esto permite al codificador mantener su estado (caracteres parciales) para que pueda codificar correctamente el siguiente bloque de caracteres. Este escenario afecta a UTF8 y UTF7, donde determinados caracteres solo se pueden codificar después de que el codificador reciba el carácter o caracteres adyacentes.

Los intentos de manipular la secuencia después de cerrar la secuencia podrían producir un ObjectDisposedException.

Notas a los desarrolladores de herederos

En las clases derivadas, no invalide el Close() método, en su lugar, coloque toda la Stream lógica de limpieza en el Dispose(Boolean) método . Para obtener más información, vea Implementación de un método Dispose.

Se aplica a

Consulte también