.net 常识 在线程级别保存数据



上一篇文章介绍了在调用堆栈级别的保存和读取数据

在大部分时候 我们使用的是同步方法 在调用堆栈和线程级别没有差别, 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默认就启用...这个线程不会被销毁,那么下个方法进来的时候可能使用了同样的线程..那么这个数据就还在.....

你可能感兴趣的:(.net)