上一篇文章介绍了在调用堆栈级别的保存和读取数据
在大部分时候 我们使用的是同步方法 在调用堆栈和线程级别没有差别, 1对1的
有的时候我们想吧数据保存在线程里面就可以使用以下的代码:
string THREAD_DATASLOT = "data name";
LocalDataStoreSlot namedDataSlot = Thread.GetNamedDataSlot(THREAD_DATASLOT);
if (namedDataSlot == null)
{
Thread.AllocateNamedDataSlot(THREAD_DATASLOT);
namedDataSlot = Thread.GetNamedDataSlot(THREAD_DATASLOT);
}
Thread.SetData(namedDataSlot, data);
BTW:如果使用了线程池 ,例如asp.net默认就启用...这个线程不会被销毁,那么下个方法进来的时候可能使用了同样的线程..那么这个数据就还在.....