private ISearchResult SearchUpdatesUtil(CancellationToken cancellationToken)
        {
            try
            {
                IUpdateSearcher         uSearcher = this._uSession.CreateUpdateSearcher();
                SearchCompletedCallback searchCompletedCallback = new SearchCompletedCallback();

                string     searchQuery = this._serviceSettings.WUQuery;
                ISearchJob searchJob   = uSearcher.BeginSearch(searchQuery, searchCompletedCallback, null);

                TimeSpan operationTimeOut = TimeSpan.FromMinutes(this._serviceSettings.WUOperationTimeOutInMinutes);
                if (
                    !this._helper.WaitOnTask(searchCompletedCallback.Task, (int)operationTimeOut.TotalMilliseconds,
                                             cancellationToken))
                {
                    _eventSource.Message("searchJob : Requested Abort");
                    searchJob.RequestAbort();
                }

                ISearchResult uResult = uSearcher.EndSearch(searchJob);
                return(uResult);
            }
            catch (Exception e)
            {
                _eventSource.InfoMessage("Exception while searching for Windows-Updates: {0}", e);
                return(null);
            }
        }
Example #2
0
 void AbortChecking()
 {
     DebugLog("Requesting abort...");
     searchJob_?.RequestAbort();
 }
Example #3
0
        private void WaitForSearchJobComplete(ISearchJob job)
        {
            if (job == null)
                return;

            do
            {
                if (DialogsManager.CancelRequested)
                    job.RequestAbort();

                Thread.Sleep(5);
                Application.Current.DoEvents();
             } while (!job.IsCompleted);
        }
Example #4
0
 public override void RequestAbort() => _job.RequestAbort();