public static ITaskHandle CreateTaskHandle(ITaskInfo taskInfo) { ITaskHandle handle = null; lock (m_taskHandleObj) { m_taskHandleDic.TryGetValue(taskInfo.TaskName, out handle); } if (handle == null) { string type = TaskHandleManager.GetHandle(taskInfo.TaskName); if (!string.IsNullOrEmpty(type)) { Type t = Type.GetType(type); if (type.IndexOf(",") > 0) { string[] arr = type.Split(new char[] { ',' }); ObjectHandle oh = Activator.CreateInstance(arr[1].Trim(), arr[0].Trim()); if (oh != null) { handle = oh.Unwrap() as ITaskHandle; lock (m_taskHandleObj) { m_taskHandleDic.Add(taskInfo.TaskName, handle); } } } } } return(handle); }
/// <summary> /// 初始化任务处理器 /// </summary> /// <param name="col"></param> private static string InitTaskHandle(TaskHandleCollection col) { StringBuilder sb = new StringBuilder(); if (col != null && col.Count > 0) { foreach (TaskHandleElement t in col) { sb.Append(t); TaskHandleManager.Add(t.Task, t.Handle); } } return(sb.ToString()); }