Break statement

18/10/2007 - 18:38 por Catalin Lungu | Informe spam
Hola,
Tengo una duda a ver si me puede aclarar alguien.

byte[] receive = new byte[0];
int tick = Environment.TickCount;

while ((Environment.TickCount - tick) < 8000)
{
Application.DoEvents();
int p1 = Array.IndexOf(buffer, (byte)0x0A, 0, buffer.Length);
if (p1 > -1)
{
if ((buffer.Length > p1 + 1) && (buffer[p1 + 1] == (byte)0x0D))
{
receive = new byte[p1];
Array.Copy(buffer, 0, receive, 0, p1);
break;
}
}
}

Lo que pretendo es que en cuanto encuentro en la variable global buffer los
bytes 0x0A y 0x0D que se salga del bucle aunque no hayan pasado los 8
segundos. En la practica no parece que pase esto. Depurandolo no me sirve de
mucho porque ya no es tiempo real. Lo que quiero saber es que si con un
break se sale del bucle while? Hay alguna otra instrución para salir de un
bucle while? Hay algo raro en el codigo que yo no lo vea?
La variable buffer es lo que recibo por el puerto com como respuesta a un
comando que le doy.

Muchas gracias de antemano,
Catalin

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
18/10/2007 - 19:21 | Informe spam
Sí, el break está bien puesto, y si se ejecuta te saca del bucle while.
Puedes verificarlo poniendo un punto de ruptura en el break, y cuando el
debugger se pare ahi, ejecutar "un paso adelante", y verás como el siguiente
paso es la sentencia que haya detrás del while.

Si no te funciona el programa, debe ser un error de lógica en algún otro
sitio, no es culpa del break.


"Catalin Lungu" wrote in message
news:
Hola,
Tengo una duda a ver si me puede aclarar alguien.

byte[] receive = new byte[0];
int tick = Environment.TickCount;

while ((Environment.TickCount - tick) < 8000)
{
Application.DoEvents();
int p1 = Array.IndexOf(buffer, (byte)0x0A, 0, buffer.Length);
if (p1 > -1)
{
if ((buffer.Length > p1 + 1) && (buffer[p1 + 1] == (byte)0x0D))
{
receive = new byte[p1];
Array.Copy(buffer, 0, receive, 0, p1);
break;
}
}
}

Lo que pretendo es que en cuanto encuentro en la variable global buffer
los bytes 0x0A y 0x0D que se salga del bucle aunque no hayan pasado los 8
segundos. En la practica no parece que pase esto. Depurandolo no me sirve
de mucho porque ya no es tiempo real. Lo que quiero saber es que si con un
break se sale del bucle while? Hay alguna otra instrución para salir de un
bucle while? Hay algo raro en el codigo que yo no lo vea?
La variable buffer es lo que recibo por el puerto com como respuesta a un
comando que le doy.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida