【发布时间】:2018-04-19 21:19:09
【问题描述】:
如果您在静态字段上设置 ThreadStatic 标志,则运行的每个线程都会有一个单独的变量,因此如果您有一个 static int 字段和一个仅将其值递增 5 次的方法,则在两次启动该方法单独的线程只会给你两个独立的值为 5 的整数,而不是一个值为 10 的整数。
在这种情况下,这种方法与为每个线程实例化的非静态字段有什么区别?
【问题讨论】:
-
您的函数不一定要由线程运行。假设您的 Function 将始终/永远不会从多个线程中调用是一个坏主意。这样,它就可以适应现实。
-
@Christopher: Everything 在线程上执行。不清楚您所说的“您的函数不一定要由线程运行”是什么意思
-
@DaisyShipton:除非您是创建线程的人,否则您如何确定线程具有本地副本?
-
@Christopher:“本地副本”是什么意思?
[ThreadStatic]的要点是它实际上每个线程都有一个独立变量。我真的不清楚你在这里想说什么。 -
@DaisyShipton:据我了解,问题是关于“线程静态”与“每个线程有一个单独的变量”。我也是这么回答的。
标签: c# multithreading static