Ejemplo n.º 1
0
 public void ScheduleUpdateDataAsync(QueryQueueEntry key)
 {
     QueryQueueMutex.WaitOne();
     QueryQueue.Enqueue(key);
     QueryQueueMutex.ReleaseMutex();
     AnyOutstandingQuery.Signal();
 }
Ejemplo n.º 2
0
        private void RunQueryThread()
        {
            for (; ;)
            {
                QueryQueueMutex.WaitOne();
                while (QueryQueue.IsEmpty() && !EndQueryThread)
                {
                    AnyOutstandingQuery.Wait(QueryQueueMutex);
                }

                if (EndQueryThread)
                {
                    QueryQueueMutex.ReleaseMutex();
                    break;
                }

                var sig = QueryQueue.Pop();
                QueryQueueMutex.ReleaseMutex();

                QueryAsyncToCacheAndUpdate(sig);
            }
        }
Ejemplo n.º 3
0
 public void Dispose()
 {
     EndQueryThread = true;
     AnyOutstandingQuery.Signal();
     QueryThread.Join();
 }