我是ThreadStatic的新手,之前我使用过ConcurrentDictionary。那么哪个是更好的选择呢?或者它取决于场景。如果它依赖:
答案 0 :(得分:1)
ThreadStatic只能在当前线程中使用,并且无法从其他线程访问实例。每个线程都有自己的ThreadStatic实例。
ThreadStatic存储在线程本地存储中,每个线程都有本地存储,.NET会做一些额外的逻辑来使其工作。
如果要为每个线程访问一个实例,则应使用ThreadStatic。在客户端服务器通信的情况下,服务器每个套接字有一个线程,它需要存储有关客户端套接字的信息以及其他一些库访问的静态变量中的其他信息。 ThreadStatic导致复杂的代码,因此应该避免或仔细编码。
如果要在多个线程中访问共享资源,则可以使用ConcurrentDictionary。