ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Comparar Respuestas


Enviado por   •  6 de Mayo de 2013  •  4.266 Palabras (18 Páginas)  •  368 Visitas

Página 1 de 18

TOPICOS AVANZADOS DE PROGRAMACION

REPORTE DE “CAPITULO 13 PROGRAMACION CON HILOS”

ALUMNO

PABLO CASTILLO DAMIAN

NC: 11321224

PROFESOR

JORGE CARRANZA GOMEZ

HORARIO 7:00-8:00 HR.

INTRODUCCION

Las aplicaciones que constan de un único hilo de control resultan más de implementar y depurar que las aplicaciones con múltiples hilos que comparten, entre otros recursos, un mismo espacio de memoria. Por eso, en el caso de múltiples hilos, el entrelazado de las operaciones de los distintos hilos hace difícil la detección de errores y más aún la de corregirlos. En definitiva, todo resultaría mucho más sencillo si no hiciese falta la concurrencia.

Cuando son necesarias las concurrencias:

Supongamos la aplicación “procesador de textos Word” que tiene que ocuparse, además de la edición del texto, de la ortografía y de la gramática. Con un único hilo tendríamos que realizar esta verificación fuera del habitual trabajo de edición.

Con el uso de hilos, podemos aprovechar los períodos de inactividad de la UCP para ir haciendo la corrección ortográfica y gramatical mientras el usuario edita el texto.

El ejemplo expuesto pone de manifiesto que el diseño correcto de una aplicación concurrente permitirá completar una mayor cantidad de trabajo en el mismo período de tiempo, pero también puede servir para que las interfaces gráficas respondan mejor a las órdenes del usuario o para la creación de aplicaciones que den servicio mejor a las órdenes del usuario o para la creación de aplicaciones que den servicio a múltiples clientes, como sucede con cualquier aplicación Web.

El principal objetivo del uso de hilos es mejorar el rendimiento del sistema para dar un mejor servicio al usuario. Un ejemplo típico es el caso de una aplicación con una interfaz gráfica de usuario, en la que hilos independientes se encargan de realizar las operaciones costosas (por ejemplo, tareas como mucho cálculo) mientras que el hilo principal de la aplicación sigue gestionando los eventos procedentes de la interfaz de usuario.

METODOS Y PROPIEDADES UTILIZADAS:

System.Threading: Espacio de nombres en las cuales están definidas las clases y delegados que permiten la programación multiprocesos.

Theread: Clase que permite definir un hilo.

ThreadStart: Delegado que se emplea para especificar el punto de entrada al hilo(este delegado se le pasa como parámetro al constructor de la clase Thread para crear un hilo).

Mutex, Monitor, Interlocked o AutoResetEvent: Son clases que proporciona System.Threaading para la sincronización de hilos y del acceso a datos.

ThreadPool: Clase que permite utilizar un grupo de hilos suministrados por el sistema.

Timer: Clase que ejecuta métodos de devolución de llamada en hilos del grupo de hilos.

Start: Inicia la ejecución de un hilo.

Sleep: Detiene un hilo durante un tiempo determinado.

Suspend: Interrumpe un hilo cuando alcanza un punto seguro.

Abort: Detiene un hilo cuando alcanza un punto seguro.

Resume: Reinicia un hilo suspendido.

Join: Deja en espera un hilo hasta que finaliza otro hilo Diferente.

PROPIEDADES UTILES QUE CONTIENE UN HILO:

IsAlive. Vale True si un hilo se encuentra activo.

IsBackground. Permite obtener o establecer un valor booleano que indica si un hilo es o debería ser un hilo en segundo plano.

Name. Permite obtener o establecer el nombre de un hilo. Se utiliza principalmente con fines de depuración.

Priority. Permite obtener o asignar a un hilo uno de los siguientes valores de prioridad: Highest, AboveNormal, Normal, BelowNormal y Lowest.

ThreadState. Describe el estado o estados de un hilo.

DESARROLLO

Creamos una nueva aplicación de tipo Windows Form y la denominaremos ApMultiproceso. Crearemos 2 etiquetas: etHora y etCargaUCP (00:00:00 y CargaUCP), también añadiremos un timer nombrado como Temporizador, cambiando su propiedad Enable al valor True y su prodad Interval al valor 1000. Al formulario le modificaremos su propiedad MaximizeBox a False.

Añadimos el controlador que responda piea los eventos Tick del temporizador y lo completamos:

Private Sub Temporizador_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Temporizador.Tick

etHora.Text = DateTime.Now.ToLongTimeString

Añadimos una barra de progreso con el nombre de bpProgreso, una etiqueta etCargaUCP con el nombre de CrgarUCP y un control NumericUpDown nombrándolo como numCargaUCP y además, un botón llamado btCalcular con el texto en pantalla de Calcular.

Ahora definimos las propiedades del control NumericUpDown numCargaUCP para asignar a este control valores de 50,000 a 50, 000,000 con incrementos de 50,000, y con un valor inicial de 50,000, y de la barra de progreso para asignaerle un rango de valores de o a 100 con incremento de 1

*No podemos poner el rando de la barra de progreso de 0 a numCarga UCP Value, por que la resolución de la barra es baja y se perdería tiempo de ICP asignando valores a su propiedad, es conveniente ponerlo de la siguiente manera:

While (hecho < numCargaUCP.Value)

' Tarea secundaria

hecho += 1

' Mostrar progreso

tpHecho = hecho / numCargaUCP.Value * 100

...

Descargar como (para miembros actualizados)  txt (24.3 Kb)  
Leer 17 páginas más »
Disponible sólo en Clubensayos.com