我有多个队列正在被多个线程访问.为了实现线程安全,我做了以下事情:
private static Dictionary<string,Queue<string>> MyQueues = new Dictionary<string,Queue<string>>(); public static string GetNextQueueElementForKey(string key) { string res = string.Empty; if (MyQueues.Keys.Contains(key)) { Queue<string> queue = MyQueues[key]; lock (queue) { if (queue.Count() > 0) { res = queue.Dequeue(); } } } return res; }
我也可以锁定MyQueues,但是我会锁定超过必要的数量.所以我的问题是,如果锁定字典中包含的对象将起作用 – 假设一个键的值(队列)永远不会改变.
解决方法
原文地址:https://www.jb51.cc/csharp/92660.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。