Duda del post: ¿Ejecutar consultas en Paralelo?
Mi pregunta es acerca del post
http://www.todoexpertos.com/categorias/tecnologia-e-internet/programacion/visual-basic/respuestas/168589/se-pueden-ejecutar-consultas-en-paralelo
Donde se expone como ejecutar varios procesos al mismo tiempo, tipo multithreading o multiprocesos.
Tengo la siguiente duda:
¿Por qué es necesario el Timer?
Voy a intentar describir el funcionamiento del programa que se escribió, a como yo lo entiendo con la intención de especificar más mi duda.
Según entiendo:
El timer se define con un tiempo muy corto, ademas de la propiedad Enable a False que se desactiva a si mismo. Ademas descarga el formulario que se cargo en el sub Procesar en la clase Ejecutor. (* Pregunta 1)
^
El sub Procesar del formulario habilita su timer. (* Pregunta 2)
^
En la clase Ejecutor, dentro del sub Procesar, se crea una instancia del form1, junto con sus subs Procesar y Timer (Dim iProceso As VBMTEjecutor.Proceso y Set iProceso = New VBMTEjecutor.Proceso).
Luego carga y muestra la instancia del form1 (Load iProceso).
Se llama al sub Procesar, del formulario, pasándole un numero, como parámetro (iProceso. Procesar Id).
Finalmente se vacia el objeto (= Nothing).
^
En las propiedades del proyecto, se marca la opción Subproceso por objeto.
* Yo me imagino que esto de que se aplique esta opción, es porque se estan creando instancias de un objeto, y cada objeto adquiere su propio espacio por separado, en memoria (* Pregunta 3).
^
Después se crea un proyecto nuevo, al que se hace referencia al ActiveX, el cual contiene la instancia a un nuevo objeto (form1), y a la vez, sus subs.
Al tener la referencia del ActiveX, éste (el proyecto) es instanciado con As VBMTEjecutor y = New VBMTEjecutor, llamando a su clase Ejecutor, y se ejecuta su sub Procesar pasándole un numero como parámetro.
Se crean 2 instancias, para crear 2 objetos, y que por lo mismo, al crearse más de un objeto, cada uno va a tener su espacio por separado, en memoria (* Pregunta 4).
* Pregunta 1: Por que es necesario inhabilitar el timer?
También supongo que se descarga el formulario (Unload Me) pues de lo contrario habría tantos forms como instancias del objeto, ¿esto es cierto?
* Pregunta 2: LA MAS IMPORTANTE Y QUE NO ME QUEDA CLARO. Por que es necesario agregar un timer. Un timer al formulario? (La respuesta obvia es que no funcionaría, y ya lo he comprobado, pero no es la respuesta que espero. Sino, por que es necesario que esté?)
* Pregunta 3 y 4: Lo que comenté para la pregunta 3 y 4, son ciertas las afirmaciones que hago, es decir, los conceptos los he entendido de forma correcta?
Me despido
http://www.todoexpertos.com/categorias/tecnologia-e-internet/programacion/visual-basic/respuestas/168589/se-pueden-ejecutar-consultas-en-paralelo
Donde se expone como ejecutar varios procesos al mismo tiempo, tipo multithreading o multiprocesos.
Tengo la siguiente duda:
¿Por qué es necesario el Timer?
Voy a intentar describir el funcionamiento del programa que se escribió, a como yo lo entiendo con la intención de especificar más mi duda.
Según entiendo:
El timer se define con un tiempo muy corto, ademas de la propiedad Enable a False que se desactiva a si mismo. Ademas descarga el formulario que se cargo en el sub Procesar en la clase Ejecutor. (* Pregunta 1)
^
El sub Procesar del formulario habilita su timer. (* Pregunta 2)
^
En la clase Ejecutor, dentro del sub Procesar, se crea una instancia del form1, junto con sus subs Procesar y Timer (Dim iProceso As VBMTEjecutor.Proceso y Set iProceso = New VBMTEjecutor.Proceso).
Luego carga y muestra la instancia del form1 (Load iProceso).
Se llama al sub Procesar, del formulario, pasándole un numero, como parámetro (iProceso. Procesar Id).
Finalmente se vacia el objeto (= Nothing).
^
En las propiedades del proyecto, se marca la opción Subproceso por objeto.
* Yo me imagino que esto de que se aplique esta opción, es porque se estan creando instancias de un objeto, y cada objeto adquiere su propio espacio por separado, en memoria (* Pregunta 3).
^
Después se crea un proyecto nuevo, al que se hace referencia al ActiveX, el cual contiene la instancia a un nuevo objeto (form1), y a la vez, sus subs.
Al tener la referencia del ActiveX, éste (el proyecto) es instanciado con As VBMTEjecutor y = New VBMTEjecutor, llamando a su clase Ejecutor, y se ejecuta su sub Procesar pasándole un numero como parámetro.
Se crean 2 instancias, para crear 2 objetos, y que por lo mismo, al crearse más de un objeto, cada uno va a tener su espacio por separado, en memoria (* Pregunta 4).
* Pregunta 1: Por que es necesario inhabilitar el timer?
También supongo que se descarga el formulario (Unload Me) pues de lo contrario habría tantos forms como instancias del objeto, ¿esto es cierto?
* Pregunta 2: LA MAS IMPORTANTE Y QUE NO ME QUEDA CLARO. Por que es necesario agregar un timer. Un timer al formulario? (La respuesta obvia es que no funcionaría, y ya lo he comprobado, pero no es la respuesta que espero. Sino, por que es necesario que esté?)
* Pregunta 3 y 4: Lo que comenté para la pregunta 3 y 4, son ciertas las afirmaciones que hago, es decir, los conceptos los he entendido de forma correcta?
Me despido
1 Respuesta
Respuesta de tnathos
1