我试图做的是让群聊的在线成员留在记忆中。我定义了一个静态嵌套字典,如下所示:
private static ConcurrentDictionary<string, ConcurrentDictionary<string, ChatMember>> onlineGroupsMembers = new ConcurrentDictionary<string, ConcurrentDictionary<string, ChatMember>>();
然后,当新成员到达时,我添加它:
onlineGroupsMembers.AddOrUpdate
(chatKey,
(k) => // add new
{
var dic = new ConcurrentDictionary<string, ChatMember>();
dic[chatMember.Id] = chatMember;
return dic;
},
(k, value) => // update
{
value[chatMember.Id] = chatMember;
return value;
});
现在的问题是,如何从内部字典中删除成员?还如何在外部字典中删除空的字典?
并发字典有 TryRemove,但它没有帮助,检查 ContainsKey 然后删除它不是原子的。
谢谢。
慕哥6287543
相关分类