Entendiendo las transmisiones y su vida útil (enjuagar, disponer, cerrar)

Nota: Ya he leído las siguientes dos preguntas:

¿Puedes explicar el concepto de arroyos?

C # usando arroyos

Estoy codificando en C #

En casi todos los ejemplos de código que usan flujos, .Dispose (), .Flush (), .Close () casi siempre se llaman.En el concepto de una corriente, ¿qué se logra?Si no dispongo de un flujo que almacené en una variable, ¿mi aplicación tiene fugas en algún lugar?¿Por qué necesito llamar a cualquiera de estas funciones? He visto ejemplos de código que no hacen esto y aún hacen el trabajo (sin unaaparente rotura)

Actualmente estoy creando una clase en mi aplicación que contiene un método primario (llamémosloGetStream()) que devuelve un flujo víamyWebRequest.GetResponse().GetResponseStream()

El método primarioGetStream() devuelve unStream Objeto que se puede utilizar para cualquier operación que requiera una secuencia (StreamReader, Bitmap () etc.).

¿Hay alguna manera de que la transmisión se elimine automáticamente después de su último uso (recolección de basura?) Sin forzar a nadie a que llame.GetStream() ¿Desecharlo manualmente?

Como probablemente puedas decir, mis preguntas son vagas y generales. Mi comprensión de los flujos no es sólida, por lo que se agradecería cualquier enlace a artículos útiles que ofrezcan una visión más profunda de los flujos que una pregunta de SO.

Respuestas a la pregunta(1)

Su respuesta a la pregunta