Czy zwrot wydajności w C # jest bezpieczny dla wątków?

Mam następujący fragment kodu:

private Dictionary<object, object> items = new Dictionary<object, object>;
public IEnumerable<object> Keys
{
    get
    {
        foreach (object key in items.Keys)
        {
            yield return key;
        }
    }
}

Czy to jest bezpieczne dla wątków? Jeśli nie, to muszę umieścićlock wokół pętli lubyield return?

Oto co mam na myśli:

Wątek1 uzyskuje dostęp doKeys właściwość, podczas gdy Thread2 dodaje element do podstawowego słownika. Czy na wątek 1 wpływa dodatek Thread2?

questionAnswers(6)

yourAnswerToTheQuestion