private void Commit() { //aResultsを破棄する if (_aResults != null) { _aResults.Dispose(); _aResults = null; } //トランザクションを終了する if (_aDbTransaction != null) { if (!_aResultsCache.IsNullCache && _updatedTables.Count > 0) { try { _aResultsCache.AcquireWriterLock(); //ロック対象処理 START _aDbTransaction.Commit(); _aDbTransaction.Dispose(); _aResultsCache.Remove(_updatedTables); //ロック対象処理 END } finally { _aResultsCache.ReleaseWriterLock(); } } else { //キャッシュの更新が発生しない場合はロックしない _aDbTransaction.Commit(); _aDbTransaction.Dispose(); } //DbTransactionを解放する _h_DbTransaction.Free(); _aDbTransaction = null; Debug.WriteLineIf(_debugPrint, "COMMIT" + Environment.NewLine); } }
public void Remove(IEnumerable <string> updateTables) { _resultsCache.Remove(updateTables); }