예제 #1
0
        private void ExecSelect(string selectSql, IEnumerable <string> usedTables)
        {
            bool NoCache = _resultsCache.Find(selectSql, usedTables) == null;

            if (NoCache)
            {
                using (IDbConn aDbConn = _aDb.GetDbConn()) {
                    try {
                        _resultsCache.AcquireReaderLock();
                        //ロック対象処理 START
                        _resultsCache.Add(selectSql, usedTables, aDbConn.ExecSelectForCache(selectSql, usedTables));
                        //ロック対象処理 END
                    } finally {
                        _resultsCache.ReleaseReaderLock();
                    }
                }
                _hitCount += 1;
            }
        }