ThreadStatic 属性将静态变量声明为每个线程唯一。您知道正确处理此类变量的简单模式吗?
我们在 ThreadStatic 之前使用的是 ThreadContextManager。每个线程都被分配了一个 ThreadContext,它保留了所有线程特定的信息。我们产生了一些线程并让它们工作。然后,当它们都完成后,我们释放了 ThreadContentManager,如果它们是 IDisposable,它会依次释放所有上下文。
我看不到将这种模式转换为 ThreadStatic 对象的直接方法。这些对象最终会被处理掉,因为线程死掉了,所以没有任何东西引用它们。但是,我们尽可能倾向于确定性处置。
更新
我并没有真正直接控制线程——我使用的是 Microsoft CCR,它有一个执行任务的 ThreadPool。完成所有任务后,我将处理 Dispatcher(它包含线程池)。问题是 - 我没有机会“在线程的主要功能结束时”做任何事情 - 所以我不能在线程运行结束时手动处理事情。我可以以某种方式从线程外部访问线程的静态对象吗?