Entendendo Streams e sua vida útil (Flush, Dispose, Close)

Nota: Eu já li as duas perguntas a seguir:

Você pode explicar o conceito de fluxos?

C # usando fluxos

Estou codificando em c #

Em quase todas as amostras de código que usam fluxos, .Dispose (), .Flush (), .Close () são quase sempre chamados.No conceito de fluxo, o que você faz?Se eu não dispuser um fluxo armazenado em uma variável, meu aplicativo está vazando em algum lugar?Por que preciso chamar qualquer uma dessas funções? Eu vi amostras de código que não fazem isso e ainda fazem o trabalho (sem umaparente quebra)

Atualmente estou construindo uma classe no meu aplicativo que contém um método primário (vamos chamá-loGetStream()) que retorna um fluxo viamyWebRequest.GetResponse().GetResponseStream()

O método principalGetStream() retorna umStream objeto que pode ser usado para qualquer operação que exija um fluxo (StreamReader, Bitmap () etc.).

Existe uma maneira de ter o fluxo Eliminado automaticamente após seu último uso (lixo coletado?) Sem forçar ninguém a fazer chamadas.GetStream() para descartá-lo manualmente?

Como você provavelmente pode dizer, minhas perguntas são vagas e gerais. Minha compreensão de fluxos não é sólida, portanto, quaisquer links para artigos úteis que oferecem uma visão mais aprofundada sobre os fluxos que uma pergunta SO pode oferecer seriam apreciados.

questionAnswers(1)

yourAnswerToTheQuestion