锁定静态方法

问题描述 投票:2回答:1

请考虑以下代码:

public static class SomeClass
{
    private static List<Item> Items;

    //Constructor

    public static void AddToChache(string key, object item)
    {
        Items.Add(new Item(){ key = key , content = item, DateAdded = DateTime.Now});
    }

    public static List<Item> GetAllItems()
    {
        return Items;
    } 

    ....

如果我想在应用程序级别创建缓存,这种方法是否需要lock来处理并发?

我想要线程安全的方法。

c# asp.net multithreading c#-4.0 thread-safety
1个回答
6
投票

如果我想在应用程序级别创建一个缓存,这个方法是否需要锁来处理并发?

不,如果您使用线程安全集合,例如ConcurrentDictionary,否则是 - 确实如此。

© www.soinside.com 2019 - 2024. All rights reserved.