Использование блокировки ключа словаря <строка, объект>

у меня естьDictionary<string, someobject>.

РЕДАКТИРОВАТЬ: Мне было указано, что мой пример был плохим. Все мое намерение состояло не в том, чтобы обновлять ссылки в цикле, а в том, чтобы обновлять различные значения на основе разных потоков, необходимо обновить / получить данные. Я изменил цикл на метод.

Мне нужно обновить элементы в моем словаре - по одному ключу за раз, и мне было интересно, есть ли проблемы с использованием блокировки значения .key моего объекта Dictionary?

private static Dictionary<string, MatrixElement> matrixElements = new Dictionary<string, MatrixElement>();

//Pseudo-code

public static void UpdateValue(string key)
{
    KeyValuePair<string, MatrixElement> keyValuePair = matrixElements[key];
    lock (keyValuePair.Key)
    {
        keyValuePair.Value  = SomeMeanMethod();
    }
}

Это выдержит в суде или провалится? Я просто хочу, чтобы каждое значение в словаре было заблокировано независимо, поэтому блокирование (и обновление) одного значения не блокирует другие. Также я знаю, что блокировка будет продолжаться долгое время - но данные будут недействительными до полного обновления.

Ответы на вопрос(7)

Ваш ответ на вопрос