public async void scheduleTasks() { // Ensure the word document counter semaphore is created MainWindow.getWordCounterSemaphore(); List <HTMLDocument> delayStartTasks = new List <HTMLDocument>(); foreach (HTMLDocument doc in DocumentsReadyToParse) { if (doc.isCached()) { doc.ParseTask.Start(); } else { delayStartTasks.Add(doc); } } DocumentsReadyToParse.Clear(); foreach (HTMLDocument doc in delayStartTasks) { bool docCached = doc.isCached(); doc.ParseTask.Start(); if (!docCached) { // 2 sec wait before the next task is scheduled - avoid hitting the host too frequently await Task.Delay(2000); } } }
internal void scheduleParse(HTMLDocument thisPage) { DocumentsReadyToParse.Add(thisPage); }