/// <summary> /// Attempts to unregister threadedTask from the specified threadingGroup /// </summary> /// <param name="threadingGroup">Determines which loop to synchronize with and when</param> /// <param name="threadedTask">Task that takes an object as a parameter and returns an object</param> /// <returns>Success?</returns> public static bool TryUnregisterThreadTask(KSPTSThreadingGroup threadingGroup, Func <object, object> threadedTask) { KSPTSRegisteredTasks registeredTasks = KSPTSThreadController.instance.registeredTasks; List <KSPTSTaskGroup> taskGroupList = null; if (registeredTasks._groupTasks.TryGetValue(threadingGroup, out taskGroupList)) { return(TryRemoveThreadedTask(taskGroupList, threadedTask)); } Debug.LogError("KSPTS Error: Could not find specified Threading Group Task List"); return(false); }
/// <summary> /// Internal task registration method /// </summary> /// <param name="threadingGroup">Determines which loop to synchronize with and when</param> /// <param name="newTaskGroup">Class holding all pre-function, threadedTask, and post-function data</param> internal static void RegisterNewThreadTask(KSPTSThreadingGroup threadingGroup, KSPTSTaskGroup newTaskGroup) { KSPTSRegisteredTasks registeredTasks = KSPTSThreadController.instance.registeredTasks; registeredTasks._groupTasks[threadingGroup].Add(newTaskGroup); }