void GenericTaskRunner()
{
PendingTasks.Open();
Logger.DebugLog("Started generic task thread");
while (true)
{
GenericTask task = null;
if (!PendingTasks.Dequeue(Timeout.Infinite, ref task)) break;
task.Invoke();
}
Logger.DebugLog("Generic task thread exited");
}