public ISmartTask CreateTask(ISmartTaskContent taskContent) { Type templateType = typeof(SmartTask <>); Type[] tParamTypes = new Type[] { taskContent.GetType() }; Type smartTaskType = templateType.MakeGenericType(tParamTypes); object[] constructorParam = new object[] { taskContent, null }; ISmartTask smartTask = (ISmartTask)Activator.CreateInstance(smartTaskType, constructorParam); RegisterTask(smartTask); //PushTask(task); 需run task.Start()才會開始 return(smartTask); }
public void PushTask(ISmartTaskContent taskContent) { PushTask(CreateTask(taskContent)); }