Reporte Practica 7
Reporte Practica 7
Reporte Practica 7
UNIDAD 3 THREADS
REPORTE DE PRACTICA 7
GRUPO: 4US
1
INDICE
INTRODUCCIÓN...........................................................................................3
OBJETIVO PRINCIPAL................................................................................3
OBJETIVOS SECUNDARIOS.......................................................................3
MATERIAL.....................................................................................................3
DESARROLLO...............................................................................................4
CONCLUSIONES.........................................................................................13
INDICE DE ILUSTRACIONES
Ilustración 1.....................................................................................................4
Ilustración 2.....................................................................................................5
Ilustración 3.....................................................................................................6
Ilustración 4.....................................................................................................7
Ilustración 5.....................................................................................................7
Ilustración 6.....................................................................................................8
Ilustración 7.....................................................................................................8
Ilustración 8.....................................................................................................9
Ilustración 9.....................................................................................................9
Ilustración 10...................................................................................................9
Ilustración 11...................................................................................................9
Ilustración 12...................................................................................................9
Ilustración 13.................................................................................................10
Ilustración 14.................................................................................................10
Ilustración 15.................................................................................................10
INTRODUCCIÓN.
De forma resumida, los hilos son un mecanismo mediante el cual podemos dividir una
aplicación en diferentes partes que se pueden ejecutar de forma paralela, existiendo
mecanismos por los que pueden compartir información. C# ofrece un mecanismo muy
sencillo de implementar hilos, basado en la utilización de la clase Thread. En el siguiente
reporte se realizara una forma de utilizar los hilos, con un ejemplo en que se emplean y tener
una idea mas general de lo que podemos hacer con su programación.
Recordemos las ventajas de los threads.
Un Thread (hilo) es simplemente una tarea que puede ser ejecutada al mismo tiempo que
otra tarea.
OBJETIVO PRINCIPAL.
• Implementar hilos en una aplicación de escritorio utilizando C#
OBJETIVOS SECUNDARIOS.
• Desarrollar en Windows Form para implementar hilos con una aplicación de escritorio
de Visual Studio
• La aplicación debe aplicar la multitarea para realizar diferentes tareas a la vez.
MATERIAL.
• Visual Studio.
• Editor de texto.
• Material de información.
DESARROLLO.
Crearemos un nuevo proyecto en visual estudio, el cual sera de tipo aplicación de Windows
Forms para aplicar los Threads y veamos como funciona, la aplicación sera sencilla.
1. Podemos crear nuestro proyecto abriendo el programa Visual Studio desde su menú.
1.1 Se nos mostrara algunos trabajos que habrimos recientemente, y al lado derecho,
podemos seleccionar las tarreas que podemos realizar en la aplicación, nosotros
realizaremos un nuevo proyecto por lo que seleccionamos Crear un Proyecto.
2. Nuestro nuevo proyecto sera en Windows Forms, esta sera la plantilla a utilizar, tiene que
ser C#, ya que es el lenguaje de programacion que emplearemos para su desarrollo.
Ilustración 2 Celesión de la plantilla Windows Forms
4.1 A nuestra Forma 1 le agregamos un botón que dice y dirá COMENZAR, el proceso para
hacerlo es el siguiente...
4.1.1 en la parte izquierda tendremos una barra de herramientas la cual nos permite trabajar
con la aplicación, utilizaremos el que dice Button y aremos click en cualquier parte dentro del
form1.
4.1.2 De esta manera tendremos un objeto Button. Para cambiar el Nombre que tiene por
defecto y asignarle uno con el cual podremos identificarlo mejor, tiene que estar seleccionado
y en la parte derecha superior tendremos una ventana con sus propiedades y modificaremos
algunas características como su Nombre, el texto que mostrara, color y tamaño ente muchas
cosas mas.
Ilustración 9 Evento del boton que usamos con valores que usara
7. Esta es nuestra función encargada de crear las barras. nuestro método recibe los
parámetros sX , sY , sAltura y sAncho, todos de tipo entero.
Ilustración 10 Método donde se generan las barras y los procesos, recibiendo valores por parámetros
11. Lo siguiente es generar el retardo suficiente para llenar la barra de progresoYo elegí
hacer que el programa cuente de 0 hasta un número aleatorio alto (como mínimo 100 mil y
como máximo 5 millones en mi caso), para esto hice dos bucles For. el primero declara una
variable contador de tipo entero, la inicializa en uno y se va a repetir hasta que la variable
llegue a 100 incrementándola de uno en uno. En cada repetición aumenta el valor de la
propiedad Value de la barra. El segundo For es el que hace el trabajo sucio. Declara la
variable CuentaNumeros de tipo entero, la inicializa en cero y se repite hasta que la variable
llegue al valor aleatorio que tomó la variable ContarHasta al principio de la función.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;
namespace FormsHilos
{
public partial class Form1 : Form
{
int Posicion = 0;
public Form1()
{
InitializeComponent();
}
}
private void button1_Click(object sender, EventArgs e)
{
Posicion = Posicion + 30;
CrearProgressBars(23, Posicion, 23, 200);
}
private void CrearProgressBars(int sX, int sY, int sAltura, int sAncho)
{
ProgressBar pb = new ProgressBar();
int ContarHasta = new Random().Next(100000, 5000000);
pb.SetBounds(sX, sY, sAncho, sAltura);
pb.Parent = this;
pb.CreateControl();
for (int contador = 1; contador <= 100; contador++)
{
pb.Value = contador;
}
}
}
CONCLUSIONES.