C sharp - Ejecutar procesos fuera de un bucle

   
Vista:

Ejecutar procesos fuera de un bucle

Publicado por Manuel F. (23 intervenciones) el 20/02/2018 06:41:54
Muy buenas noches a todos...!!!

Estoy trabajando en un pequeño proyecto que consiste en la simulación de una "pantalla de radar" y cree un
método relativamente simple para activar la pantalla (es decir, ver una aguja en movimiento circular, que es el indicador de que la "antena" está efectuando un 'barrido de 360 grados):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public void ActivarAntenaDeRadar(PictureBox p)
{
       int i = 0;
 
       g = p.CreateGraphics();
       g.TranslateTransform(350, 350);
       do
       {
               if (i > 719)
               {
                      i = 0;
               }
               //
               g.DrawLine(aguja, 0, 0, (float)cX[i], (float)cY[i]);
               Thread.Sleep(15);
               g.DrawLine(borrarAguja, 0, 0, (float)cX[i], (float)cY[i]);
               //
               i++;
       } while (activar != false);
}

El método se encuentra en una clase externa siendo llamado desde la clase principal...
Mi pregunta es: Cómo puedo ejecutar algún otro proceso simultáneamente fuera del bucle do-while?
Por ejemplo, quiero finalizar la simulación (para ello por supuesto, tengo creado un botón)... Intente con
Application.DoEvents no sirvió de nada... Probé usando Thread tampoco sirvió (porque
aunque puedo ejecutar el proceso correspondiente a finalizar la simulación, ésta, lo que hace es "suspenderse"),
porque no realiza el trabajo que requiero.

Lo más probable sea, que no esté utilizando el Thread debidamente...

Si alguien puede orientarme en como debo proceder, se lo agradecería de antemano !!!


Saludos desde Puerto La Cruz, Edo. Anzoátegui. Venezuela.

Manuel F. Borrego Sterling
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ejecutar procesos fuera de un bucle

Publicado por Conrado (13 intervenciones) el 13/03/2018 19:10:39
Hola, podes usar la clase BackgroundWorker para estos casos. En el DoWork metería la logica sacando el do while.
Podría ayudarte.
Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar