Несколько таймеров обращаются к объекту словаря в одноэлементном объекте

У меня есть одноэлементный объект и в нем определен словарь.

public class MyClass 
{
    public static readonly MyClass Instance = new MyClass();

    private MyClass
    {}

    public Dictionary<int, int> MyDictionary = new Dictionary<int, int>();
}

Теперь у меня есть два объекта System.Timers.Timer, обновляющих MyDictionary.

System.Timers.Timer timer1 = new System.Timers.Timer(5);
timer1.AutoReset = false;
timer1.Elapsed += new System.Timers.ElapsedEventHandler(MyTimer1Handler);
timer1.Enabled = true;
timer1.Start();

System.Timers.Timer timer2 = new System.Timers.Timer(5);
timer2.AutoReset = false;
timer2.Elapsed += new System.Timers.ElapsedEventHandler(MyTimer2Handler);
timer2.Enabled = true;
timer2.Start();

private void MyTimer1Handler(object sender, ElapsedEventArgs e)
{
     MyClass.Instance.MyDictonary[1] = 100;
}

private void MyTimer1Handler(object sender, ElapsedEventArgs e)
{
     MyClass.Instance.MyDictonary[2] = 100;
}

У меня вопрос, учитывая, что обработчик прошедших событий таймеров работает однозначно с индексом 1 и индексом 2 MyDictionary, нужна ли какая-либо блокировка для MyDictionary?

0
задан user977606 22 February 2012 в 01:37
поделиться