/// <summary> /// Run the requests /// </summary> private void Run() { while (!disposed) { RequestItem request = null; lock (requestsLock) { if (requests.Count > 0) { request = requests[0]; requests.RemoveAt(0); } else { Monitor.Wait(requestsLock); } } if (request != null) { request.Execute(ui, lb); } } }