public void ScheduleUpdateDataAsync(QueryQueueEntry key)
 {
     QueryQueueMutex.WaitOne();
     QueryQueue.Enqueue(key);
     QueryQueueMutex.ReleaseMutex();
     AnyOutstandingQuery.Signal();
 }
 public void Dispose()
 {
     EndQueryThread = true;
     AnyOutstandingQuery.Signal();
     QueryThread.Join();
 }