Jnjn

Solo disponible en BuenasTareas
  • Páginas : 5 (1114 palabras )
  • Descarga(s) : 0
  • Publicado : 13 de noviembre de 2011
Leer documento completo
Vista previa del texto
Universidad de Puerto Rico en Ponce Departamento de Administración de Empresas y Ciencias Computadoras

Sistemas Operativos Minimicrocomputadoras: SICI 3008 – M03 Primer Semestre 2010-2011 Dr. Luis Alberto Daza

LAB: Trabajando con Multihilos (Multithreads)
Crear una aplicación en VB.net
Con Visual Basic .NET, se pueden crear aplicaciones que realicen varias tareas a la vez. Las tareas conla posibilidad de mantener otras tareas pueden ejecutarse en subprocesos separados (hilos o hebras), un proceso que se conoce como multithreading. Las aplicaciones que utilizan multithreading son más receptivas a los datos proporcionados por el usuario porque la interfaz de usuario permanece activa cuando se ejecutan tareas con un consumo de procesador elevado en subprocesos independientes. Elmultithreading también es útil cuando se crean aplicaciones escalables, porque se pueden agregar subprocesos a medida que aumenta la carga de trabajo. Se crea un hilo mediante la declaración de una variable de tipo Thread y una llamada al constructor al que se proporciona el nombre del procedimiento o método que se desea ejecutar en el nuevo subproceso: Dim newThread As New Thread(AddressOf AMethod)Método Acción Start Sleep Inicia la ejecución de un subproceso. Hace una pausa en la ejecución de un subproceso durante un período de tiempo determinado.

Suspend Hace una pausa en la ejecución de un subproceso cuando alcanza un punto seguro. Abort Detiene un subproceso cuando alcanza un punto seguro.

Resume Reinicia un subproceso suspendido Join Hace que el subproceso actual espere a quetermine otro subproceso.Si se utiliza con un valor de tiempo de espera, este método devuelve True cuando el subproceso termina en el tiempo asignado.

Propiedades de los hilos
Los subprocesos contienen también varias propiedades útiles, como se muestra en la tabla siguiente:

Propiedad
IsAlive IsBackground

Valor
Contiene el valor True si un subproceso está activo. Obtiene o establece unvalor de tipo Boolean que indica si un subproceso está o debe estar en segundo plano.Los subprocesos en segundo plano son como los de primer plano, pero los de segundo plano no impiden que se termine un proceso.Una vez terminados todos los subprocesos en primer plano pertenecientes a un proceso, Common Language Runtime termina el proceso mediante una llamada al método Abort en los subprocesos ensegundo plano que continúan activos.

Name

Obtiene o establece el nombre de un subproceso.Suelen utilizarse para detectar subprocesos individuales durante la depuración.

Priority

Obtiene o establece un valor que el sistema operativo utiliza para asignar prioridades en la programación de subprocesos.

ApartmentState Obtiene o establece el modelo de subprocesos utilizado para unsubproceso en particular.Los modelos de subprocesos son importantes cuando un subproceso llama a código no administrado. ThreadState Contiene un valor que describe el estado o estados de un subproceso.

En este laboratorio veremos cómo escribir el programa, compilarlo y ejecutarlo para ver el resultado.

Imports System.Threading Public Class Form1 Private nuestroHilo As Thread Private SubForm1_Load(ByVal sender . . . nuestroHilo = New Thread(AddressOf ThreadTask) nuestroHilo.IsBackground = True nuestroHilo.Start() End Sub Private Sub Button1_Click(ByVal sender . . . MessageBox.Show("Soy el hilo principal") End Sub Private Sub ThreadTask() Do MsgBox("Soy el hilo creado ") Thread.Sleep(5000) Loop End Sub End Class

Multithreading con formas y controles
Aunque el multithreading se adaptamejor a los métodos de clase y procedimientos en ejecución, también puede utilizarlo con formularios y controles. De hacerlo hay que tener en cuenta los puntos siguientes:

 

Siempre que sea posible, ejecute los métodos de un control únicamente en el subproceso con el cual haya sido creado. Si hay que llamar a un método de un control desde otro subproceso, utilice Invoke para invocar el...
tracking img