日期:2014-05-20  浏览次数:20837 次

关于 hashtable 存储问题
foreach(DictionaryEntry   e   in   htClient)  
{  
if(((Socket)e.Key)==accSock)  
{  
htClient.Remove(accSock);  
htClient.Add(accSock,Rec);  
break;  
}  
Thread.Sleep(5);  
}

功能描述:   hashtable   存储已经连接的SOCKET,在其中寻找相应的SOCKET(KEY),并把相应SOCKET发送的数据(Rec)存入VALUE,形成Key   /   Value   形式.

问题描述:通过跟踪调试,能顺利添加第一个SOCKET   的值(value),形成预期的   Key   /   Value   ,但是,无法添加第二个SOCKET的值(value).

求助:希望各位,能帮助解决,十分感谢!


------解决方案--------------------
干吗要对hasttable用foreach??
你直接写好了
if(htClient[accSock] == null)
{
htClient[accSock] = Rec;
}

不知道是不是符合楼主的意思?
------解决方案--------------------
是不是你的key都一样的?

最好不要用hashtable.Add(key, value)这样的形式来添加item, 用这个方式:

hashtable[key]=value;

这样不会有Exception, 而且key相同的话, 会直接覆盖原来的value