private void MonitorRenderStatus()
        {
            RenderMonitor renderMonitor = new RenderMonitor(job);

            renderMonitor.FailureEvent += OnRenderFailure;
            renderMonitor.SuccessEvent += OnRenderSuccess;
            renderMonitor.Start();
        }
        private void OnRenderFailure(object sender, EventArgs ea)
        {
            RenderMonitor monitor = sender as RenderMonitor;

            monitor.FailureEvent -= OnRenderFailure;
            monitor.SuccessEvent -= OnRenderSuccess;
            monitor.Stop();
            monitor = null;

            job.ErrorStatus = JobErrorStatus.JES_DEADLINE_RENDER_JOB;
            FireFailureEvent();
        }
        private void OnRenderSuccess(object sender, EventArgs ea)
        {
            RenderMonitor monitor = sender as RenderMonitor;

            monitor.FailureEvent -= OnRenderFailure;
            monitor.SuccessEvent -= OnRenderSuccess;
            monitor.Stop();
            monitor = null;

            if (job.Production.IsZipProduction)
            {
                job.Status = JobStatus.JS_ENCODE_JOB;
            }
            else
            {
                job.Status = JobStatus.JS_ENCODING_DONE;
            }
            Work();
        }