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; } }