void OperationSucceeded(IEnumerable <CaptionRegion> markers)
        {
            try
            {
                if (_player != null)
                {
                    var      workload = workerQueue.Peek();
                    LogEntry logEntry = null;
                    if (markers != null)
                    {
                        UpdateCaptions(((SMFPlayer)_player).Captions, markers);
                        logEntry = new LogEntry
                        {
                            Type       = KnownLogEntryTypes.InStreamTimedTextPluginMarkersParsed,
                            SenderName = typeof(InStreamTimedTextPlugin).Name,
                            Severity   = LogLevel.Information,
                            Message    =
                                string.Format(
                                    TimedTextMediaPluginResources.
                                    InStreamTimedTextPluginParsingSuccessfulLogMessage, markers.Count())
                        };
                    }


                    if (logEntry != null)
                    {
                        LogReady.IfNotNull(i => i(this, logEntry));
                    }
                }
            }
            finally
            {
                workerQueue.Dequeue();
                if (workerQueue.Any())
                {
                    RunWorkLoad(workerQueue.Peek());
                }
            }
        }
        void OperationFailed(Exception err)
        {
            try
            {
                if (_player != null)
                {
                    var      workload = workerQueue.Peek();
                    LogEntry logEntry = null;
                    {
                        logEntry = new LogEntry
                        {
                            Type       = KnownLogEntryTypes.InStreamTimedTextPluginErrorOccurred,
                            SenderName = typeof(InStreamTimedTextPlugin).Name,
                            Severity   = LogLevel.Error,
                            Message    =
                                string.Format(
                                    TimedTextMediaPluginResources.
                                    InStreamTimedTextPluginParseDFXPFailedLogMessage, err.Message)
                        };
                    }

                    if (logEntry != null)
                    {
                        LogReady.IfNotNull(i => i(this, logEntry));
                    }
                }
            }
            finally
            {
                workerQueue.Dequeue();
                if (workerQueue.Any())
                {
                    RunWorkLoad(workerQueue.Peek());
                }
            }
        }