.Bind() внутри lock или вне? Как правильно на C#?

Devostator

Client
Регистрация
17.09.2011
Сообщения
258
Благодарностей
25
Баллы
18
Подскажите пожалуйста.

Какая конструкция более верная?

Вариант 1.
Снаружи:
string Path = project.Variables["Way"].Value;
IZennoList list = project.Lists["spisok"];
list.Bind(Path);

lock (SyncObjects.ListSyncer) {
//какой-то код
    }
Вариант 2.
Внутри:
string Path = project.Variables["Way"].Value;
IZennoList list = project.Lists["spisok"];


lock (SyncObjects.ListSyncer) {
list.Bind(Path);
//какой-то код
    }
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 463
Благодарностей
3 351
Баллы
113
Не требуется. В любом случае файл для записи не должен совпадать.
 

Devostator

Client
Регистрация
17.09.2011
Сообщения
258
Благодарностей
25
Баллы
18
Не требуется. В любом случае файл для записи не должен совпадать.
Боюсь что вы не так поняли вопрос. Я не спрашивал требуется ли лок для bind, я спросил где именно вставлять bind в случае ситуации с lock конструкцией.
 

Oleg1987

Client
Регистрация
11.08.2014
Сообщения
1 191
Благодарностей
764
Баллы
113
Я не спрашивал требуется ли лок для bind, я спросил где именно вставлять bind в случае ситуации с lock конструкцией.
Перед lock. Внутри конструкции lock нужно вставлять то, что требуется лочить
И биндить один и тот же файл к одному и тому же списку достаточно один раз. Т.е. не надо вставлять list.Bind() в каждом месте, где вы собираетесь работать со списком
 
  • Спасибо
Реакции: Devostator

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)