c# 多线程访问 Dictionary解决办法

c# 多线程访问 Dictionary

 public static Dictionary<string, DateTime> dictionary = new Dictionary<string, DateTime>();

    public static object locker = new object();//添加一个对象作为锁

    public static void AddRecord()//线程1循环调用此函数
    {
        lock (locker)//锁
        {
            /*添加过程*/
            dictionary.Add("....", DateTime.Now);
        }
    }
    public static void DeleteRecord()//线程2循环调用此函数
    {
        lock (locker)//锁
        {
            /*删除过程*/
            dictionary.Remove("....");
        }
    }
多线程访问 Dictionary是不是一定要这样写,例如我直接写成:
lock( dictionary)
{
线程一代码添加 dictionary内容
}
lock( dictionary)
{
线程2代码删除 dictionary内容
}
这样是不是没有用的?

------解决思路----------------------
还有,如果你直接lock(字典)
那么这个字典对象你就不要随便重新new了