安全地迭代阻塞集合?

时间:2012-06-29 16:21:17

标签: c# .net-4.0 concurrent-collections

我有以下代码:

    private static void FetchAllDataForAllNodesInCache()
    {
        var tasksList = Cache.TreeNodeItemsCollection.Select(nodeToEnrich => new Task(() => InsertQueuesIntoNode(nodeToEnrich))).ToList();

        var count = tasksList.Count;
    }

    private static void InsertQueuesIntoNode(TreeNode toEnrich)
    {
        // blagh do something?
    }

我的问题是,在设置新任务时,我是否需要使用Take或Try Take方法?我的意思是,我不需要从集合中安全地删除我的项目,然后在任务安全完成后再将其重新添加。我能为想要回答我的问题的人提供的唯一保证是,“Cache.TreeNodeItemsCollection”中没有两个任务可以使用相同的节点。

我还没有添加一些代码来启动任务,但是一旦我知道我当前的设置是否正常,这将被添加?

0 个答案:

没有答案
相关问题