Я не верю, что локальные потоки автоматически удаляются потоком, когда он существует - это все еще остается для реализации разработчиком. От MSDN:
Всегда вызывайте Dispose, прежде чем выпускать последнюю ссылку на ThreadLocal.В противном случае используемые им ресурсы не будут освобождены до тех пор, пока сборщик мусора не вызовет метод Finalize объекта ThreadLocal.
Однако, если ваш локальный тип потока является чем-то, что не потребляет никаких ресурсов, которыеодноразовый варрант (например, int или другой примитивный тип), вероятно, не стоит его утилизировать, так как сборщик мусора в конечном итоге с этим справится.
Обычно неразумно иметь один и тот же экземпляр ссылки на объект несколькимиThreadLocal
объекты - фактически это противоречит тому, что обычно пытается достичь локальное хранилище потоков.Можно предположить, что изолированные локальные потоки являются «потокобезопасными» в том смысле, что никакие другие потоки не должны (в принципе) иметь к ним доступ.Имейте в виду, что безопасность потоков является нюансированной концепцией и требует, чтобы вы установили конкретные ограничения и ожидания в отношении разделяемой памяти ... Я использую термин в этом контексте в широком смысле.