在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>
變量為每個線程提供了獨立的值副本,因此主線程和新線程中的值不會相互干擾。