Атрибут ThreadStatic объявляет статическую переменную как уникальную для каждого потока.
Знаете ли вы простой способ правильно расположить такие переменные?
То, что мы использовали до ThreadStatic, это ThreadContextManager. Каждому потоку был присвоен ThreadContext, в котором сохранена вся информация, относящаяся к потоку. Мы породили некоторые темы и позволили им работать. Затем, когда они все закончили, мы избавились от ThreadContentManager, который, в свою очередь, удалил все контексты, если они были IDisposable.
Я не вижу непосредственного способа перевести этот шаблон в объекты ThreadStatic. Объекты будут удалены в конечном итоге, потому что потоки умирают, и поэтому ничто не ссылается на них. Тем не менее, мы предпочитаем детерминированное распоряжение всякий раз, когда это возможно.
Обновление
Я не контролирую потоки напрямую - я использую Microsoft CCR, в которой есть ThreadPool, который выполняет задачи. Когда все задачи выполнены, я избавляюсь от Dispatcher (который содержит пул потоков). Дело в том, что у меня нет возможности что-либо сделать «в конце основной функции потока», поэтому я не могу утилизировать вещи вручную в конце выполнения потока. Могу ли я как-то получить доступ к статическим объектам потока из-за пределов потока?