Лок глобалки не работает между потоками

  • Автор темы Автор темы Mikhail B.
  • Дата начала Дата начала

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 449
Реакции
5 478
Баллы
113
Приложил 2 шаблона для демонстрации. Запускаем оба в 1 поток в ZennoPoster.

Какова суть шаблонов:
В первом шаблоне лок 10 секунд и пауза после него 10 сек - т.е. в логе будет всегда +10 сек оповещения
Во втором шаблоне лок 5 секунд и пауза после него 5 сек - т.е. в логе будет всегда +5 сек

Как понять, что не работает лок между потоками
По логике они должны вставать в очередь и в логе временные интервалы сбиться должны. т.е. вместо 5 будет 15, или вместо 10 будет 15. но по факту ничего не изменно, и идет четко. Логика шаблонов предельна проста, глобалка залочена. Сам факт на лицо.
 

Вложения

Лок работает в рамках одного проекта, а не всех.
 
Как мне тогда залочить допустим список между двумя шаблонами?
А списки и таблицы как раз лочатся глобально для всех шаблонов :-)
В кубиках это предусмотрено по умолчанию, а в коде необходимо использовать:
C#:
Развернуть Свернуть Копировать
lock (SyncObjects.ListSyncer) {
// Здесь работа со списком
}
C#:
Развернуть Свернуть Копировать
lock (SyncObjects.TableSyncer) {
// Здесь работа с таблицей
}
 
  • Оценить
Реакции: ZX и Mikhail B.
А списки и таблицы как раз лочатся глобально для всех шаблонов :-)
В кубиках это предусмотрено по умолчанию, а в коде необходимо использовать:
C#:
Развернуть Свернуть Копировать
lock (SyncObjects.ListSyncer) {
// Здесь работа со списком
}
C#:
Развернуть Свернуть Копировать
lock (SyncObjects.TableSyncer) {
// Здесь работа с таблицей
}
Ну тогда огонь! Спасибо за информацию))
 
Да, можете проверить самостоятельно :-)


Почему?)
Потому что я сам с глобалками научился работать по одному из его кодов, и с локами. И был искренне уверен в глобальности этого лока как и остальных)
И использовал этот лок. Возможно даже там, где не стоило. Сам тут давал коды с этим локом, опять же, возможно в ситуациях, в которых не стоило)
 
  • Оценить
Реакции: orka13 и Mikhail B.
@ibred проект например имеет 5 списков с разными названиями, от такого лока смысла нет. только задержка будет проекта так как обращаясь один поток в лок, все потоки будут ожидать, по поводу что он блочит для разных проектов честно тоже такому удивлён
 
Кстати, заметил они устарели:
Снимок.PNG

Новый аналог посложнее и похоже можно задавать приоритеты.
 
Но то, что между шабами блочит - незнал.
тоже не знал да и что то никогда не проверял. щас тест сделал и реально второй в очереди минуту стоял ждал
Кстати, заметил они устарели:
откуда такая картинка ? у меня они норм отображаются
 
у меня они норм отображаются
вообще, должны:
Снимок.PNG
Проблем это не должно создать, если разрабы не удалят. Предупреждения же, можно скрыть.

А вот примеров новых на форуме нет :(
 

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