双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

Dictionary无法删除

varlj varlj 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我使用Dictionary来保存Socket与一些业务信息的关联,当客户断开连接后,我需要从Dictionary把它删除掉,结果发现删除不掉,代码如下:


//用于存放SOCKET与关联的信息
static IDictionary<Socket, SomeInfo> dic = new Dictionary<Socket, SomeInfo>();

//删除的代码,放在一个timer中,1秒检查一次
for(int i=0;i<list.Count;i++)
{
var socket = list[i];

Console.WriteLine(socket.Handle);
socket.Disconnect(false);
Console.WriteLine("before:" + dic.ContainsKey(socket) + " count:" + dic.Keys.Count);
Console.WriteLine( dic.Remove(socket) );
Console.WriteLine("after:" + dic.ContainsKey(socket) + " count:" + dic.Keys.Count);
}


输出结果:
1228
before:True count:1
True
after:False count:1

1228
before:True count:1
True
after:False count:0

1228
before:True count:1
True
after:True count:1

1228
before:True count:1
True
after:False count:0

1228
before:True count:1
True
after:True count:1

1228
before:True count:1
True
after:True count:1
...全文

相关推荐

评论 13
收藏 已收藏
分享
返回顶部
varlj
C# 111,129 成员 642,540 内容