private bool IsWorkFinished() { // If the main search has been cancelled by the user if (_working == false) { string msg = "SearchManager no longer set to 'Working'"; Debug.WriteLine(msg); return true; } // If all specified results have been returned if (GetPercentComplete() >= 100) { Debug.WriteLine("=== Percent Complete at or above 100 ==="); return true; } // If all worker threads are no longer working // (finished / no more results to search) int workingCount = _pageManagers.Where(i => i.WorkStatus == PageManager.Status.Working).Count(); if (workingCount == 0) { Debug.WriteLine("No working PageManagers (none with Working status)"); OutputPageManagerStatus(); return true; } return false; }