在C#中,ThreadLocal<T>
类用于创建线程局部变量。要初始化一个ThreadLocal<T>
变量,您需要创建一个新的实例并为其指定一个默认值(如果需要)。以下是一个简单的示例:
using System;
using System.Threading;
class Program
{
// 创建一个ThreadLocal<int>变量
private static readonly ThreadLocal<int> threadLocalVariable = new ThreadLocal<int>();
static void Main(string[] args)
{
// 在当前线程中设置值
threadLocalVariable.Value = 10;
Console.WriteLine("Current thread value: " + threadLocalVariable.Value);
// 创建一个新线程
Thread newThread = new Thread(new ThreadStart(ThreadFunction));
newThread.Start();
// 等待新线程完成
newThread.Join();
}
static void ThreadFunction()
{
// 在新线程中设置值
threadLocalVariable.Value = 20;
Console.WriteLine("New thread value: " + threadLocalVariable.Value);
}
}
在这个示例中,我们创建了一个名为threadLocalVariable
的ThreadLocal<int>
变量。然后,我们在主线程和新线程中分别设置了它的值。由于ThreadLocal<T>
变量为每个线程提供了独立的值副本,因此主线程和新线程中的值不会相互干扰。