.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默认就启用...这个线程不会被销毁,那么下个方法进来的时候可能使用了同样的线程..那么这个数据就还在.....

posted on 2011-04-04 11:32  听说读写  阅读(925)  评论(1编辑  收藏  举报

导航