@@ -27,9 +27,9 @@ public BaseBridge(ISQLiteTable<TValue> bridgeTable) : base()
2727 #endregion
2828
2929 #region methods
30- public override void Add ( TValue value )
30+ public new void Add ( TValue value )
3131 {
32- _ReaderWriterLockSlim . EnterWriteLock ( ) ;
32+ _ReaderWriterLockSlim . EnterUpgradeableReadLock ( ) ;
3333 try
3434 {
3535 if ( ! IsKeyAutoIncrement )
@@ -46,13 +46,13 @@ public override void Add(TValue value)
4646 }
4747 finally
4848 {
49- _ReaderWriterLockSlim . ExitWriteLock ( ) ;
49+ _ReaderWriterLockSlim . EnterUpgradeableReadLock ( ) ;
5050 }
5151 }
5252
53- public override void Clear ( )
53+ public new void Clear ( )
5454 {
55- _ReaderWriterLockSlim . EnterWriteLock ( ) ;
55+ _ReaderWriterLockSlim . EnterUpgradeableReadLock ( ) ;
5656 try
5757 {
5858 Task task = BridgeTable . ResetTableAsync ( ) ;
@@ -65,11 +65,11 @@ public override void Clear()
6565 }
6666 finally
6767 {
68- _ReaderWriterLockSlim . ExitWriteLock ( ) ;
68+ _ReaderWriterLockSlim . ExitUpgradeableReadLock ( ) ;
6969 }
7070 }
7171
72- public override bool Remove ( TKey key )
72+ public new bool Remove ( TKey key )
7373 {
7474 bool result = false ;
7575
@@ -78,19 +78,11 @@ public override bool Remove(TKey key)
7878 {
7979 if ( this . ContainsKey ( key ) )
8080 {
81- _ReaderWriterLockSlim . EnterWriteLock ( ) ;
82- try
83- {
84- TValue value = this [ key ] ;
85- Task < int > task = BridgeTable . DeleteRecordAsync ( value ) ;
86- value . PropertyChanged -= OnChildPropertyChanged ;
87- result = base . Remove ( key ) ;
88- task . ConfigureAwait ( false ) . GetAwaiter ( ) . GetResult ( ) ;
89- }
90- finally
91- {
92- _ReaderWriterLockSlim . ExitWriteLock ( ) ;
93- }
81+ TValue value = this [ key ] ;
82+ Task < int > task = BridgeTable . DeleteRecordAsync ( value ) ;
83+ value . PropertyChanged -= OnChildPropertyChanged ;
84+ result = base . Remove ( key ) ;
85+ task . ConfigureAwait ( false ) . GetAwaiter ( ) . GetResult ( ) ;
9486 }
9587 }
9688 finally
0 commit comments