public bool Remove(Guid jobId) { lock (syncLock) { if (JobRuntimePool.ContainsKey(jobId)) { JobRuntimeInfo jobRuntimeInfo = null; JobRuntimePool.TryGetValue(jobId, out jobRuntimeInfo); if (jobRuntimeInfo != null) { var tiggerKey = new TriggerKey(jobRuntimeInfo.JobModel.JobName, jobRuntimeInfo.JobModel.JobGroup); scheduler.PauseTrigger(tiggerKey); scheduler.UnscheduleJob(tiggerKey); scheduler.DeleteJob(new JobKey(jobRuntimeInfo.JobModel.JobName, jobRuntimeInfo.JobModel.JobGroup)); JobRuntimePool.TryRemove(jobId, out jobRuntimeInfo); JobOperator.UpdateJobStatus(jobRuntimeInfo.JobModel.ID, 0); if (!JobRuntimePool.Any(p => p.Value.AppDomain == jobRuntimeInfo.AppDomain)) { AppDomainLoader <BaseJob> .UnLoad(jobRuntimeInfo.AppDomain); } return(true); } } return(false); } }