Usuario
ayuda al ejecutar varias acciones en orden

Pregunta
-
buenas, necesito ayuda a la hora de ejecutar varias acciones en ordedn una despues de otra
a lo q me refiero es q digamos
Void DoActions() { if (chk1.IsChecked) {action 1} if (chk2.IsChecked) {action 2} if (chk3.IsChecked) {action 3} if (chk3.IsChecked) {action 3} }
entonces es que a la hora de ejecutar DoActions() se ejecute action1, luego la 2 y asi sucesivamente....a esto agregandole que alguna se puede omitir si por ejemplo chk2.Checked = false algo asi
un ultimo ejemplo a ver si me explico mejor....lo que hace un instalador q necesita descargar los archivos....primero se selecciona lo q quiere instalar, despues los descarga y al final los instala...enves de q uno los escoje...y los empieza a descagar mientras los intenta instalar de una vez...masomenos algo asi, q haya un orden
Gracias espero haberme explicado bien
Todas las respuestas
-
Hola Luis.
Bueno, esto se puede hacer de infinidad de formas, yo te dejo una bastante sencilla que es la base de tu idea, lo que quieres es ir creando un vector de acciones para luego recorrerlo y ejecutarlas una a una, a esto se denomina comunmente pila FIFO o LIFO, en este caso te pongo el ejemplo con FIFO (primero en entrar primero en salir).
haciendo uso de los objetos del framework seria algo asi:
// encolar las acciones queue.Enqueue(new Action(accion1)); queue.Enqueue(new Action(accion1)); queue.Enqueue(new Action(accion1)); queue.Enqueue(new Action(accion1)); queue.Enqueue(new Action(accion1)); // comenzar la ejecucion de las accioens Action action; while ((action = (Action)queue.Dequeue()) != null) { action.Invoke(); } // funciones para ejecutar public void accion1() { /*... cuerpo de funcion */ } public void accion2() { /*... cuerpo de funcion */ } public void accion3() { /*... cuerpo de funcion */ } public void accion4() { /*... cuerpo de funcion */ }
El codigo lo he puesto todo junto para que te hagas una idea y lo despliegues como bien te venga, la idea es ir encolando SOLO las acciones que se vayan a ejecutar (dependiendo del check u otro mecanismo), luego solo tienes que recorrer el objeto e ir desencolando acciones para ejecutarlas.
NOTA: el objeto Action es del framework y es un objeto para encapsular un metodo con parametros pero sin valor de retorno (lo que viene a ser un procedimiento en los paradigmas), si quieres valores de retorno puedes hacer uso de 'Func'.
En fin, tienes muchos mecanismos, si necesitas ayuda mas concreta comentalo.
PD.- se me olvido ponerte la declaracion de queue:
// crear cola para añadir las acciones System.Collections.Queue queue = new System.Collections.Queue();
Saludos
David González
MCP, MCTS
Visita mi Blog en: http://www.dgzornoza.com/- Propuesto como respuesta Josue YerayMVP, Moderator miércoles, 2 de marzo de 2011 10:37
-
gracias david por su respuesta, perdoname la ignorancia es q di yo no soy muy avanzado en esto, entonces la verdad no se como se usa
otra cosa yo el ejemplop lo habia puesto en c# entonces ud me respondio en c#...pero no me lo puede poner en VB talvez se me haga mas facil
gracias de antemano
-
Hola Luis.
lo siento, pero hace mucho tiempo que no programo en VB, pero la mayoria del codigo son objetos y funciones que se tratan de la misma forma.
te dejo una pagina con un traductor, existen otras, pero es la primera que he encontrado, si vas a programar en VB, mejor que vayas intentando traducirte el codigo por que hay mucho mas en c# que VB.
http://authors.aspalliance.com/aldotnet/examples/translate.aspx
de todas formas si tienes problema con la traduccion postealo en el foro que seguro que hay gente que te puede ayudar.
Saludos
David González
MCP, MCTS
Visita mi Blog en: http://www.dgzornoza.com/ -
gracias, no tranquilo yo lo que uso es c# no VB....el problema es que el programa que estoy haciendo lo empece hace como 2 años en VB cuando solo ese sabia...y ahora lo llevo muy adelntado y con mucho codigo como para ponerme a traducirlo.....gracias de todos modos...el codigo que me pusiste ahi atras si me sirvio, lo traduje y arregle muchas gracias