5 Estados

Páginas: 2 (301 palabras) Publicado: 14 de febrero de 2012
using System.Threading;
namespace Practica_SeccionCritica
{
public partial class Form1 : Form
{
//se crean tres hilos
Thread Hilo1;
Thread Hilo2;
ThreadHilo3;
public int i=0;
//se crea un objeto que servira como nuestra puerta en el Monitor
object objGate = new object();
public Form1()
{CheckForIllegalCrossThreadCalls = false;
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
//metodo que ejecutaran los hilos, en estemetodo no esta regulada la seccion critica
public void Operacion1()
{
//aqui inicia la seccion critica
for (i = 0; i < 15; i++)
{lblHilo.Text=("Entrando Seccion Critica el " + Thread.CurrentThread.Name);
Thread.Sleep(500);
lbxNumeros.Items.Add(Thread.CurrentThread.Name + ": " + i);}
//aqui finaliza la seccion critica
}
//metodo que ejecutaran los hilos, aqui se utiliza la clase monitor para controlar el acceso a la seccion critica por los hilos.
publicvoid OperacionExclusion()
{//se determina el inicio con el metodo Enter de la clase Monitor, esto hara que no entre otro hilo a la seccion critica hazta que finalize el actual hiloMonitor.Enter(objGate);
for (i = 0; i < 15; i++)
{
lblHilo.Text = ("Procesando: " + Thread.CurrentThread.Name);
Thread.Sleep(500);lbxNumeros.Items.Add(Thread.CurrentThread.Name + ": " + i);
}
Monitor.Exit(objGate);
//aqui avisa al monitor que el hilo actual salio de la seccioncritica.
}
//boton para iniciar la simulacion
private void button1_Click(object sender, EventArgs e)
{
//Con exclusion
if (checkBox1.Checked == true)...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • 5
  • 5
  • 5
  • 5
  • 5
  • 5
  • 5
  • 5

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS