我正在大量使用并行扩展,并且我刚刚遇到了一种情况,即使用线程本地存储可能是明智的,以允许工作线程重用对象。因此,我正在查看 ThreadStatic 属性,该属性将静态字段/变量标记为每个线程具有唯一值。
在我看来,在不保证 PE 重用线程的情况下使用带有 ThreadStatic 属性的 PE 是不明智的。也就是说,如果线程在某种程度上被创建和销毁,变量(以及它们指向的对象)是否会在线程本地存储中保留一段不确定的时间,从而导致内存泄漏?或者也许线程存储与线程绑定并在线程被处理时被处理?但是,您仍然可能在池中拥有长期存在的线程,并且从线程用于的各种代码中积累线程本地存储。
有没有更好的方法来使用 PE 获取线程本地存储?
谢谢你。