В dotnet, если я создаю (HashSet disposable), где T : IDisposable, и сохраняю объект hashSet в поле. Когда объекты Disposable будут удалены? Рассмотрим этот код:
Код: Выделить всё
public class LongRunningProcess: ServiceBase
{
private HashSet set;
public LongRunningProcess()
{
set = new HashSet();
}
void Process()
{
using (var disposable= new IDisposable() )
{
if (!set.Contains(disposable))
//Process
else
set.Add(disposable);
}
}
}
В этом коде я создал класс, который хранит поле HashSet, поскольку это рабочая служба, которая никогда не умирает (до следующего перезапуска). Означает ли это, что члены хешсета будут удалены при перезапуске? Учитывая, что хэш-наборы представляют собой набор хэшей, влияет ли их продолжительность жизни на продолжительность жизни их объекта-члена?
Подробнее здесь:
https://stackoverflow.com/questions/788 ... able-membe