Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Блокировка кэша
|
|||
|---|---|---|---|
|
#18+
Здравствуйте всем, в приложении используются объекты из кэша. Один объект используется несколькими пользователями. Если объекта в кэше нет, он сначала создается, потом кладется в кэш. При одновременном обращении пользователей возможна ситуация, когда в кэш кладутся несколько одних и тех же объектов, что не есть хорошо. Как можно заблокировать кэш, чтобы в него помещался только один объект от первого обращения к приложению? Можно ли использовать конструкцию вида lock(Cache) { .. } Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2012, 08:09 |
|
||
|
Блокировка кэша
|
|||
|---|---|---|---|
|
#18+
Есть штатная блокировка Application без написания левого кода . Код: c# 1. 2. 3. А, вообще, за такую "архитектуру" по блокировке Application / Cache нужно веником по мягкому месту рядить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2012, 09:45 |
|
||
|
Блокировка кэша
|
|||
|---|---|---|---|
|
#18+
МСУЕсть штатная блокировка Application без написания левого кода . Код: c# 1. 2. 3. А, вообще, за такую "архитектуру" по блокировке Application / Cache нужно веником по мягкому месту рядить. за такую точно =)) 2ТС: lock подойдёт, только нужно его правильно заиспользовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2012, 10:50 |
|
||
|
Блокировка кэша
|
|||
|---|---|---|---|
|
#18+
pationза такую точно =)) А за какую не точно? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2012, 10:55 |
|
||
|
Блокировка кэша
|
|||
|---|---|---|---|
|
#18+
МСУpationза такую точно =)) А за какую не точно? ) Велосипедов изобретена тьма но Application.Lock() - это жесть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2012, 11:04 |
|
||
|
Блокировка кэша
|
|||
|---|---|---|---|
|
#18+
pationВелосипедов изобретена тьма но Application.Lock() - это жесть Поверь, эти велосипеды не меньшая жесть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2012, 11:07 |
|
||
|
Блокировка кэша
|
|||
|---|---|---|---|
|
#18+
есть т.н. паттерн "Двойная блокировка", что вы скажете про него? private static object ThisLock = new object(); ... object dataObject = Cache["globalData"]; if( dataObject == null ) { lock( ThisLock ) { dataObject = Cache["globalData"]; if( dataObject == null ) { //Get Data from db dataObject = GlobalObj.GetData(); Cache["globalData"] = dataObject; } } } return dataObject; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2012, 11:11 |
|
||
|
Блокировка кэша
|
|||
|---|---|---|---|
|
#18+
artemius, это не двойная блокировка, это гумно на постном масле. Для double checked locking нужно использовать volatile. Вот пример . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2012, 11:54 |
|
||
|
Блокировка кэша
|
|||
|---|---|---|---|
|
#18+
МСУartemius, это не двойная блокировка, это гумно на постном масле. а в чем недостатки этого способа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2012, 12:01 |
|
||
|
Блокировка кэша
|
|||
|---|---|---|---|
|
#18+
artemiusа в чем недостатки этого способа? Прочитай внимательно ссылку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2012, 12:04 |
|
||
|
Блокировка кэша
|
|||
|---|---|---|---|
|
#18+
artemiusЗдравствуйте всем, в приложении используются объекты из кэша. Один объект используется несколькими пользователями. Если объекта в кэше нет, он сначала создается, потом кладется в кэш. При одновременном обращении пользователей возможна ситуация, когда в кэш кладутся несколько одних и тех же объектов, что не есть хорошо. Как можно заблокировать кэш, чтобы в него помещался только один объект от первого обращения к приложению? Можно ли использовать конструкцию вида lock(Cache) { .. } Спасибо! на один key "когда в кэш кладутся несколько одних и тех же объектов" это как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2012, 12:30 |
|
||
|
Блокировка кэша
|
|||
|---|---|---|---|
|
#18+
Вообщем, пришел к выводу, что асп.нетовский кеш не получится полноценно залочить. Не поможет даже двойная блокировка. Вывод простой - обычный потокобезопасный статический синглтон спасет отца русской демократии. Но про кешёвые фишки типа таймера, коллбэков и иже с ними придется забыть. Ну или пытаться всё это засунуть в синглтон со всеми вытекающими. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2012, 16:14 |
|
||
|
|

start [/forum/topic.php?fid=18&fpage=122&tid=1359282]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
33ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 367ms |

| 0 / 0 |
