是C#中不同线程共享的静态类

Rev*_*ous 10 c# static multithreading

我需要在线程之间共享一个值而不超出它的边界.静态变量是否这样做?

Ree*_*sey 12

静态变量在AppDomain中的多个线程之间共享.所有线程都将在静态变量的同一实例上查看并执行操作.因此,如果您使用静态,您可能希望使用某种形式的同步来保护该变量的访问.

如果你想拥有一个线程局部变量,那么这个ThreadLocal<T>类很容易.它提供了一种生成和使用每个线程唯一的数据的方法.


Jon*_*eet 11

你的意思是你希望变量是线程本地的?

您可以使用.NET 4中的[ThreadStatic]属性或ThreadLocal<T>类.

个人而言,我更喜欢ThreadLocal<T>,如果你正在使用.NET 4 -但更好的仍然是,如果你能避免这种情况下的.例如,您可以将信息封装到用于启动线程的实例中吗?