Понимание потоков и их времени жизни (очистка, удаление, закрытие)
Примечание: я уже прочитал следующие два вопроса:
Можете ли вы объяснить концепцию потоков?
Я кодирую в C #
Почти во всех примерах кода, использующих потоки, почти всегда вызываются .Dispose (), .Flush (), .Close ().Что происходит в концепции потока?Если я не удаляю поток, который хранил в переменной, мое приложение где-то просачивается?Почему мне нужно вызывать любую из этих функций? Я видел примеры кода, которые не делают этого и все еще выполняют свою работу (безочевидный поломка)В настоящее время я создаю класс в моем приложении, который содержит основной метод (давайте вызовем егоGetStream()
) который возвращает поток черезmyWebRequest.GetResponse().GetResponseStream()
Основной методGetStream()
возвращаетStream
объект, который можно использовать для любой операции, для которой требуется поток (StreamReader, Bitmap () и т. д.).
Есть ли способ автоматически удалять поток после его последнего использования (сборщик мусора?), Не заставляя никого вызывать.GetStream()
вручную утилизировать его?
Как вы, вероятно, можете сказать, мои вопросы расплывчаты и носят общий характер. Мое понимание потоков не является надежным, поэтому любые ссылки на полезные статьи, которые предлагают более углубленный взгляд на потоки, чем может предложить вопрос SO, будут приветствоваться.