/// <summary>
        /// Cancels the active asynchronous searches on all services.
        /// </summary>
        public void CancelAsync()
        {
            SearchEngines.ForEach(engine =>
            {
                engine.SubtitleSearchNewLink -= SingleSubtitleSearchNewLink;
                engine.SubtitleSearchDone    -= SingleSubtitleSearchDone;
                engine.SubtitleSearchError   -= SingleSubtitleSearchError;

                engine.CancelAsync();
            });
        }
        /// <summary>
        /// Cancels the active asynchronous searches on all services.
        /// </summary>
        public void CancelAsync()
        {
            Log.Debug("Cancelling search after " + (DateTime.Now - _start).TotalSeconds + "s.");

            SearchEngines.ForEach(engine =>
            {
                engine.DownloadSearchNewLink -= SingleDownloadSearchNewLink;
                engine.DownloadSearchDone    -= SingleDownloadSearchDone;
                engine.DownloadSearchError   -= SingleDownloadSearchError;

                engine.CancelAsync();
            });
        }