请教自定义Dictionary类如何在类内实现线程同步的问题谢谢!

netcoder 2009-03-12 02:38:54
加精
微软的Dictionary的实例成员是不支持线程安全的,因此我自定义了一个Dictionary,但在进行枚举操作的时候无法进行锁定,请大家帮帮我想想办法,代码如下:

public class DictionaryEx<Tkey, Tvalue>
{
public DictionaryEx()
{
mDic = new Dictionary<Tkey, Tvalue>();
}

private Dictionary<Tkey, Tvalue> mDic;

public void Add(Tkey Key, Tvalue Item)
{
ICollection ic = mDic.Values;
lock (ic.SyncRoot)
{mDic.Add(Key, Item); }


}

public Dictionary<Tkey, Tvalue>.Enumerator GetEnumerator()
{
ICollection ic = mDic.Values;
lock (ic.SyncRoot)//这一句根本起不了作用
{ return mDic.GetEnumerator(); }
}

public Dictionary<Tkey, Tvalue>.ValueCollection Values
{
get { return mDic.Values; }

}
}
...全文
1598 67 打赏 收藏 转发到动态 举报
写回复
用AI写文章
67 条回复
切换为时间正序
请发表友善的回复…
发表回复
ylwqhr 2009-12-28
  • 打赏
  • 举报
回复
收藏,学习!~
netcoder 2009-12-11
  • 打赏
  • 举报
回复
都推荐了,看样子是好帖!
ying1856 2009-11-21
  • 打赏
  • 举报
回复
呵呵,看不懂
nsj010 2009-11-20
  • 打赏
  • 举报
回复
为什么不改成静态
gshch 2009-11-20
  • 打赏
  • 举报
回复
不懂啊
ijourney 2009-11-19
  • 打赏
  • 举报
回复
haohao good
evil_bean 2009-11-18
  • 打赏
  • 举报
回复
軟體,hello
evergod2008 2009-11-17
  • 打赏
  • 举报
回复
受教
thunderchen_cl 2009-11-17
  • 打赏
  • 举报
回复
又学了一点东西,真不错。
umbrella_yang 2009-11-17
  • 打赏
  • 举报
回复
发错了 应该是
ReaderWriterLockSlim
umbrella_yang 2009-11-17
  • 打赏
  • 举报
回复
请使用读写锁(ReaderWriterSlim)
cchb1986 2009-11-17
  • 打赏
  • 举报
回复
mark
javet01 2009-11-17
  • 打赏
  • 举报
回复
学习一下
SlaughtChen 2009-11-17
  • 打赏
  • 举报
回复
关注
zhentiant 2009-11-17
  • 打赏
  • 举报
回复
路过看看!
luokaijie 2009-11-17
  • 打赏
  • 举报
回复
xxjf
qiao246 2009-11-17
  • 打赏
  • 举报
回复
看看
gwemail2003 2009-11-17
  • 打赏
  • 举报
回复
1 学习了,都是大牛
yongy1978 2009-11-17
  • 打赏
  • 举报
回复
学习了,谢谢哦!
lsd123 2009-11-17
  • 打赏
  • 举报
回复
加载更多回复(44)

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧