Как сделать lock на произвольный участок кода ?

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 761
Благодарностей
1 389
Баллы
113
Приветствую.

Нужен некий аналог лока списков/таблиц, только для произвольного участка кода.

То есть смысл в том что в многопотоке только 1 поток должен выполнять этот участок кода, а остальные должны ждать ...
 

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 761
Благодарностей
1 389
Баллы
113

surrealmix

Client
Регистрация
07.03.2013
Сообщения
715
Благодарностей
409
Баллы
63
Локер для одного кубика
C#:
lock(SyncObject)
{
    //произвольный код
}
Локер на любое количество кубиков (перед использованием необходимо добавить директивы using)

C#:
lock(ZennoLab.OwnCode.CommonCode.SyncObject)
{
    //произвольный код
}
 
  • Спасибо
Реакции: evgen_po и WebBot

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 866
Баллы
113
В 8 (последнем) конкурсе статей была публикация на эту тему :-) Советую ознакомиться
 
  • Спасибо
Реакции: WebBot

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 761
Благодарностей
1 389
Баллы
113
В 8 (последнем) конкурсе статей была публикация на эту тему :-) Советую ознакомиться
Да я вроде бы все конкурсные статьи читал ... статью про локи помню, голосовал да же за нее, но насколько я помню там было про то как делать локи ограниченного действия для списоков и таблиц.... надо будет перечитать, возможно там дейсттвительно это было ... всего в памяти не удержишь ;-)
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 866
Баллы
113
делать локи ограниченного действия для списоков и таблиц
просто создается свой локер и используется в нужном месте, если нужно ограничить какое-то определенное действие, чтоб в многопотоке не получить чего-то плохое
 
  • Спасибо
Реакции: LaGir

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