Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        /// <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());
        }