Если никто не закрывает потоки, то в конечном итоге будет вызван финализатор, который должен вызвать dispose и закрыть их после GC. Но это довольно дурацкий ресурс, потому что он оставляет любые, возможно, дорогостоящие ресурсы, выделенные до GC. Чем дольше живет ваш объект, тем хуже он может стать, особенно если он выживет в коллекциях для повышения до 1-го или даже 2-го поколения.
Было бы неплохо, если бы вы могли представить вызывающей стороне что-то, что изолирует это. Возможно, вы можете кэшировать что-то из потока, чтобы вы могли закрыть его, продолжая передавать контент вызывающей стороне?
РЕДАКТИРОВАТЬ после того, как вы отредактировали: Теперь, когда я вижу, что ваш вызывающий абонент ПРОХОДИТ вам поток для обработки, мой ответ должен быть другим! Совершенно очевидно, что ваш абонент должен управлять временем жизни потока. Сначала у меня сложилось впечатление, что ваш класс создал поток, и надеялся, что звонящий справится с этим.