Thread.sleep() problema
Publicado por Roberto (2 intervenciones) el 13/02/2013 05:29:40
Buen dia. Tengo un ciclo while con el thread.sleep (3000) y cada 3 seg. me imprime mensajes en la pantalla. cada ciclo. Y funciona bien!!
Pero cuando lo hago con interfaz grafica. En el evento click del boton pongo ese while.
Pero en vez de que vaya imprimiendo cada 3 segundos en cada ciclo. Hace todo los ciclos con sus pausas pero lo imprime en el textbox ya que terminaron todos los ciclos, en realidad si hace las pauses pero no esta imprimiendo despues del sleep() cuando le corresponde este es el codigo del evento click.
Gracias.
1
2
3
4
5
6
7
8
9
10
11
while (cont <= procesos)
{
if (cont == 10 || cont == 20 || cont== 30)
lote++;
int tiempo2 = tiempo.Next(5,10);
total = total + tiempo2;
System.Threading.Thread.Sleep(3000);
Console.WriteLine("Lote No: " + lote);
Console.WriteLine("Proceso No " + cont );
Console.WriteLine("Tiempo de Ejecucion " + tiempo2);
}
Pero cuando lo hago con interfaz grafica. En el evento click del boton pongo ese while.
Pero en vez de que vaya imprimiendo cada 3 segundos en cada ciclo. Hace todo los ciclos con sus pausas pero lo imprime en el textbox ya que terminaron todos los ciclos, en realidad si hace las pauses pero no esta imprimiendo despues del sleep() cuando le corresponde este es el codigo del evento click.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
private void button1_Click(object sender, EventArgs e)
{
int procesos, lote = 1, cont = 1, total = 0;
Random tiempo = new Random();
procesos = Convert.ToInt32(textBox1.Text);
while (cont <= procesos)
{
int tiempo2 = tiempo.Next(3);
if (cont == 10 || cont == 20 || cont == 30)
lote++;
total = total + tiempo2;
System.Threading.Thread.Sleep(3000);
textBox2.Text = textBox2.Text + ("Lote No: " + lote.ToString() + "\r\n");
textBox2.Text = textBox2.Text + ("Proceso No: " + cont.ToString() + "\r\n");
textBox2.Text = textBox2.Text + ("Tiempo de Ejecucion " + tiempo2.ToString() + "\r\n");
textBox2.Text = textBox2.Text + ("\r\n\r\n");
cont++;
}
Gracias.
Valora esta pregunta


0