예제 #1
0
        public static ItemTask LoadItemJob(Guid jobId)
        {
            TaskData taskData = HiveServiceLocator.Instance.CallHiveService(s => s.GetTaskData(jobId));

            try {
                return(PersistenceUtil.Deserialize <ItemTask>(taskData.Data));
            } catch {
                return(null);
            }
        }
예제 #2
0
 public HiveTask(Task task, TaskData taskData, bool autoCreateChildHiveTasks)
 {
     this.syncTasksWithOptimizers = autoCreateChildHiveTasks;
     this.Task = task;
     try {
         this.ItemTask = PersistenceUtil.Deserialize <ItemTask>(taskData.Data);
     }
     catch {
         this.ItemTask = null;
     }
     this.childHiveTasks          = new ItemList <HiveTask>();
     this.syncTasksWithOptimizers = true;
     RegisterChildHiveTasksEvents();
 }
 protected Tuple <Task, T> DeserializeTask(Tuple <Task, TaskData> taskData)
 {
     deserializeSemaphore.WaitOne();
     try {
         if (abort || taskData.Item2 == null || taskData.Item1 == null)
         {
             return(null);
         }
         var deserializedJob = PersistenceUtil.Deserialize <T>(taskData.Item2.Data);
         taskData.Item2.Data = null; // reduce memory consumption.
         return(new Tuple <Task, T>(taskData.Item1, deserializedJob));
     }
     finally {
         deserializeSemaphore.Release();
     }
 }