時間差で複数のタスクを実行しています。

タスクAがDictionaryを作成中にタスクBがDictionaryの作成を開始すると、
「同一のキーを含む項目が既に追加されています。」
と重複エラーが発生してしまいます。
タスクの開始時間の差を十分に開けて、各タスクのDictionary作成タイミングが重ならなければこのようなエラーは起きません。

インスタンスは別で作成しているのにDictionaryの重複エラーが起きてしまう原因はなぜでしょうか。
また、できればこの構成を変えず、時間差を開ける以外で回避策はあるでしょうか?

宜しくお願いします。

program.cs

var Task_A = Task.Factory.StartNew(() =>
    {                
        Thread.Sleep(100);
        DataAccsess dataAcs = new DataAcs();

    });

var Task_B = Task.Factory.StartNew(() =>
    {                
        Thread.Sleep(500);
        DataAccsess dataAcs = new DataAcs();                
    });

DataAccsess.cs

Dictionary dic;

public DataAccsess()
{
    var stateDic = new States();
    this.dic = stateDic.GetStateDic();

    /* その他処理 */
}

States.cs

Dictionary dic;
public Dictionary<string,string> GetStateDic()
{
    dic = new Dictionary<string, string>()
    dic.Add("State1", ConfigurationManager.AppSettings["State1Name"]);
    dic.Add("State2", ConfigurationManager.AppSettings["State2Name"]);

    /* 中略 */

    dic.Add("State16", ConfigurationManager.AppSettings["State16Name"]);

    return dic;
}