我正在尝试使用Alchemy Websockets组合一个快速的小程序,该程序在其示例中使用 ConcurrentDictionary 集合。
在我编写的代码中,我试图将一个新客户端添加到 ConcurrentDictionary。我注意到我的脚本在尝试访问此客户端时在其他区域失败,并将其缩小到我添加到 ConcurrentDictionary 的项目立即进入“僵尸”状态。
这是我添加客户端的测试代码:
Client test = new Client(ctx, sessId);
Clients.TryAdd(test, String.Empty);
Console.WriteLine ("Adding new client: " + sessId);
如果我使用调试器在该区域中断,我可以看到“测试”包含正确的客户端信息,但在将其添加到客户端集合后立即显示“对象处于僵尸状态。(来自 HRESULT 的异常:0x8013134F)” .
字典在我的类中声明如下:
protected ConcurrentDictionary<Client, string> Clients = new ConcurrentDictionary<Client, string>();
我知道我可能正在做一些愚蠢的事情,但是什么给了?