Você está na página 1de 3

INTRODUCCION

En esta seccin mostraremos los mtodos para crear una aplicacin que lanza un hilo secundario e hilo principal el cual nos muestra el tiempo el cual tarda en hacer el procedimiento.

DESARROLLO Y PRUEBAS
Primero que nada creamos la interfaz grafica del programa la cual debe de ser un listbox y un botn para cargar iniciar el hilo.

A continuacin se mostrara el cdigo que empea la funcin del botn iniciar un hilo
PrivateSub Button1_Click(sender AsObject, e AsEventArgs) Handles Button1.Click Dim nuevocontador Ascontador = Newcontador(Me, idHilo) idHilo += 1 Dim hilocontador AsThread = NewThread(AddressOf nuevocontador.TareaHilo) hilocontador.IsBackground = True hilocontador.Start() EndSub

Este cdigo al darle clic empieza mostrar los datos en pantalla adems este otro se encarga de recibir los datos
PublicSub SetItem_lshilos(ByVal item AsString) If (lshilos.InvokeRequired) Then Dim delegado AsSetItemListDelegadte = NewSetItemListDelegadte(AddressOf SetItem_lshilos) lshilos.Invoke(delegado, NewObject() {item}) Else lshilos.items.add(item) EndIf EndSub

Jared Ulises Gmez Araujo

TAP 11-12

Este cdigo se encarga de recibir los datos y mostrarlos en pantalla adems de agregar un temporizador pero este ya no lo agregamos con un control si no con cdigo este se encarga de medir el transcurso del tiempo en que tarda en lanzar un hilo pero tambin si el hilo se retrasa demasiado este manda un mensaje de advertencia. A continuacin la aplicacin funcionando

CONCLUSION
Llegamos a la conclusin de que mientras mas la aplicacin lanza un hilo el tiempo de espera varia puede ir ms rpido y a la ves mas lento esto nos da a entender que se le complica hacer ciertas tareas.

Jared Ulises Gmez Araujo

TAP 11-12

ANEXOS
Imports System.Threading PublicClassForm1 PrivateDelegateSubSetItemListDelegadte(ByVal prItems AsString) Private idHilo AsInteger Public varX AsInteger PrivateSub Button1_Click(sender AsObject, e AsEventArgs) Handles Button1.Click Dim nuevocontador Ascontador = Newcontador(Me, idHilo) idHilo += 1 Dim hilocontador AsThread = NewThread(AddressOf nuevocontador.TareaHilo) hilocontador.IsBackground = True hilocontador.Start() EndSub PublicSub SetItem_lshilos(ByVal item AsString) If (lshilos.InvokeRequired) Then Dim delegado AsSetItemListDelegadte = NewSetItemListDelegadte(AddressOf SetItem_lshilos) lshilos.Invoke(delegado, NewObject() {item}) Else lshilos.items.add(item) EndIf EndSub

EndClass PublicClasscontador Private m_form AsForm1 Private m_idhilo AsInteger PublicSubNew(ByVal formularios AsForm1, ByVal id_hilo AsInteger) m_form = formularios m_idhilo = id_hilo EndSub PublicSub tareahilo() Dim item AsString Try Do Thread.Sleep(1000) SyncLock m_form m_form.varX += 1 item = "hilo "& m_idhilo &": "& m_form.varX m_form.SetItem_lshilos(item) EndSyncLock Loop Catch ex AsException Debug.WriteLine("Error inesperado en el hilo "& m_idhilo & vbCrLf & ex.Message)

EndTry EndSub EndClass

Jared Ulises Gmez Araujo

TAP 11-12

Você também pode gostar