【发布时间】:2012-07-20 11:10:29
【问题描述】:
使用类名访问静态字段,如下所示:
public class Me()
{
public static int a=5;
}
我可以使用Me.a 访问它,因此它附加到类。
但是当我看的时候:
static ThreadLocal<int> _x = new ThreadLocal<int> (() => 3);
它保证每个线程看到_x的不同副本。
我们不是刚刚看到static 是每个class 而不是每个thread? ThreadLocal 如何设法为每个线程提供_x 的不同副本?
【问题讨论】:
-
你疯狂的格式、间距和大写是怎么回事?请花一点时间整理一下您的帖子,或许还可以使其更简洁一些。
-
每个类只有一个
_x,但ThreadLocal<T>实例为每个线程维护不同的值。 -
@Lee 是的,谢谢,但他是怎么做到的?它仍然标记为静态...
-
@RoyiNamir - 所以你的问题是
ThreadLocal<T>是如何工作的? -
@RoyiNamir - 每个线程没有静态变量。您有一个静态
ThreadLocal<T>实例,其中包含每个线程的T类型的值。
标签: c# .net multithreading .net-4.0 clr