コード例 #1
0
 public async Task RegisterUsersAsync(long listId, IEnumerable <long> userIds)
 {
     await WriteTaskFactory.StartNew(() =>
     {
         try
         {
             ReaderWriterLock.EnterWriteLock();
             using (var conn = this.DangerousOpenConnection())
                 using (var tran = conn.BeginTransaction(DefaultIsolationLevel))
                 {
                     foreach (var userId in userIds)
                     {
                         conn.Execute(TableInserter, new DatabaseListUser(listId, userId));
                     }
                     tran.Commit();
                 }
         }
         catch (Exception ex)
         {
             throw WrapException(ex, "RegisterUserAsync", TableInserter);
         }
         finally
         {
             ReaderWriterLock.ExitWriteLock();
         }
     });
 }
コード例 #2
0
 internal async Task VacuumAsync()
 {
     // should execute WITHOUT transaction.
     await WriteTaskFactory.StartNew(() =>
     {
         using (AcquireWriteLock())
             using (var con = this.DangerousOpenConnection())
             {
                 con.Execute("VACUUM;");
             }
     });
 }