Ejemplo n.º 1
0
        private static ITaskManagerEntry CreateEntry(Action action, TaskScheduler scheduler = null, TaskCreationOptions options = default(TaskCreationOptions))
        {
            var entry = new ActionTaskManagerEntry(action, scheduler, options);

            AddEntry(entry);
            return(entry);
        }
Ejemplo n.º 2
0
        private static ITaskManagerEntry CreateEntry <T>(Action <T> action, T param, TaskScheduler scheduler = null, TaskCreationOptions options = default(TaskCreationOptions))
        {
            var actionObj = new Action <object>((obj) => action((T)obj));
            var entry     = new ActionTaskManagerEntry(actionObj, param, scheduler, options);

            AddEntry(entry);
            return(entry);
        }
Ejemplo n.º 3
0
        private static ITaskManagerEntry CreateEntry <T1, T2, T3, T4, T5, T6, T7, T8>(Action <T1, T2, T3, T4, T5, T6, T7, T8> action, T1 param1, T2 param2, T3 param3, T4 param4, T5 param5, T6 param6, T7 param7, T8 param8, TaskScheduler scheduler = null, TaskCreationOptions options = default(TaskCreationOptions))
        {
            var actionObj = new Action <object>((obj) =>
            {
                //Los parámetros los recibiré como una tupla
                var tuple = obj as Tuple <T1, T2, T3, T4, T5, T6, T7, Tuple <T8> >;
                action.Invoke(tuple.Item1, tuple.Item2, tuple.Item3, tuple.Item4, tuple.Item5, tuple.Item6, tuple.Item7, tuple.Rest.Item1);
            });
            //Al crear la tarea paso los parámetros como una Tupla
            var entry = new ActionTaskManagerEntry(actionObj, new Tuple <T1, T2, T3, T4, T5, T6, T7, Tuple <T8> >(param1, param2, param3, param4, param5, param6, param7, new Tuple <T8>(param8)), scheduler, options);

            AddEntry(entry);
            return(entry);
        }
Ejemplo n.º 4
0
        private static ITaskManagerEntry CreateEntry <T1, T2, T3>(Action <T1, T2, T3> action, T1 param1, T2 param2, T3 param3, TaskScheduler scheduler = null, TaskCreationOptions options = default(TaskCreationOptions))
        {
            var actionObj = new Action <object>((obj) =>
            {
                //Los parámetros los recibiré como una tupla
                var tuple = obj as Tuple <T1, T2, T3>;
                action.Invoke(tuple.Item1, tuple.Item2, tuple.Item3);
            });
            //Al crear la tarea paso los parámetros como una Tupla
            var entry = new ActionTaskManagerEntry(actionObj, new Tuple <T1, T2, T3>(param1, param2, param3), scheduler, options);

            AddEntry(entry);
            return(entry);
        }