Пример #1
0
 public void Query(Sql sql, Connection db, Action <List <Dictionary <string, object> > > callback)
 {
     Oxide.Core.SQLite.Libraries.SQLite.SQLiteQuery sQLiteQuery = new Oxide.Core.SQLite.Libraries.SQLite.SQLiteQuery()
     {
         Sql        = sql,
         Connection = db,
         Callback   = callback
     };
     lock (this._syncroot)
     {
         this._queue.Enqueue(sQLiteQuery);
     }
     this._workevent.Set();
 }
Пример #2
0
 public void ExecuteNonQuery(Sql sql, Connection db, Action <int> callback = null)
 {
     Oxide.Core.SQLite.Libraries.SQLite.SQLiteQuery sQLiteQuery = new Oxide.Core.SQLite.Libraries.SQLite.SQLiteQuery()
     {
         Sql              = sql,
         Connection       = db,
         CallbackNonQuery = callback,
         NonQuery         = true
     };
     lock (this._syncroot)
     {
         this._queue.Enqueue(sQLiteQuery);
     }
     this._workevent.Set();
 }
Пример #3
0
 private void Worker()
 {
     while (this._running || this._queue.Count > 0)
     {
         Oxide.Core.SQLite.Libraries.SQLite.SQLiteQuery sQLiteQuery = null;
         lock (this._syncroot)
         {
             if (this._queue.Count <= 0)
             {
                 foreach (Connection _runningConnection in this._runningConnections)
                 {
                     if (_runningConnection == null || _runningConnection.get_ConnectionPersistent())
                     {
                         continue;
                     }
                     this.CloseDb(_runningConnection);
                 }
                 this._runningConnections.Clear();
             }
             else
             {
                 sQLiteQuery = this._queue.Dequeue();
             }
         }
         if (sQLiteQuery == null)
         {
             if (!this._running)
             {
                 continue;
             }
             this._workevent.WaitOne();
         }
         else
         {
             sQLiteQuery.Handle();
             if (sQLiteQuery.Connection == null)
             {
                 continue;
             }
             this._runningConnections.Add(sQLiteQuery.Connection);
         }
     }
 }