博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

Thread提供了API将数据保存到线程中,就像ASP.NET中每一个Thread都保存了一个Session一样。
通过Thread.GetData和SetData来读取或写入数据。示例代码如下:

Thread.SetData(Thread.GetNamedDataSlot("key"), data);
object data = Thread.GetData(Thread.GetNamedDataSlot("key"));

 

Thread.GetNamedDataSlot("key") 用来获取一个命名数据槽。如果是第一次调用这个方法,将会先创建这个命名槽。

使用上面的方法,每个线程都可以在数据槽中读写数据而不至于造成冲突。也就是说两个不同的线程读取到的内容是它们自己写入的内容。下面相关链接中的第二链接提到了可以释放命名数据槽,实际在使用时,无需释放,也不会造成内存泄露。

 

相关链接

http://msdn.microsoft.com/zh-cn/library/6sby1byh%28v=VS.90%29.aspx
http://hi.baidu.com/lhdisme/blog/item/69772bf841061c0ad9f9fde0.html

posted on 2012-04-10 22:05  黑米  阅读(729)  评论(0编辑  收藏  举报