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