Suspender momentáneamente la ejecución de una aplicación

Colapsar
X
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar todos
nuevos mensajes

  • Suspender momentáneamente la ejecución de una aplicación

    Hola de nuevo.
    Tengo una aplicación que (entre otras cosas) presenta un carrusel de gráficos ininterrumpidamente.
    Quisiera poner un botón que al pulsarlo detuviera momentáneamente esa presentación.
    Igualmente añadiría otro botón que reanudara la ejecución desde el punto en que se detuvo.
    He encontrado algo con System.Threading.Thread.Sleep(milisegundos) que permite detener la ejecución de la aplicación durante el número de milisegundos que le indiquemos, pero no es eso lo que pretendo. Lo que quiero es que la aplicación se detenga hasta que la activemos de nuevo manualmente.
    Muchas gracias por vuestra ayuda.
    Saludos de nuevo,
    Miguel Peña
    Última edición por MiguelPG; 03-11-2017, 04:29 AM.

  • #2
    Aprovechando tu código actual, con la orden System.Threading.Thread.Sleep(milisegundos), puedes setear la variable milisegundos = 1000 cuando "LMANTENER = True" y milisegundos = 0 cuando "LMANTENER = False". Y lógicamente defines LMANTENER = True cuando pulses el botón de "SUSPENDER", y LMANTENER = False cuando pulses el botón de "REANUDAR".
    Por supuesto, la ejecución del SLEEP tendrás que hacerla en una subrutina Timer.

    Te doy esta orientación chapucerilla, porque ya sabes que yo de .NET ná de ná...
    José María Movilla Cuadrado
    ______________________
    Normas del foro
    www.foro.vb-mundo.com
    www.vb-mundo.com

    Comentario


    • #3
      Hola José María.
      Como siempre, tú dispuesto a ayudar en todo.
      He probado lo que tú me indicas, pero tiene un problema. Me explico:
      Por ejemplo, le digo que milisegundos sea igual a 6000 (espera 6 segundos)pero ocurre que durante este proceso no permite realizar ninguna acción. Es decir, que al pulsar el botón SEGUIR no responde puesto que todo está bloqueado.
      De nuevo, gracias por tu ayuda.

      Comentario


      • #4
        Te explico lo que he hecho a ver si encuentras algo raro.
        En primer lugar, he creado una variable de tipo Boolean llamada esperar
        He insertado dos botones (PAUSAR y SEGUIR) y este es el código:

        Código:
        Private Sub btnPausar_Click(sender As System.Object, e As System.EventArgs) Handles btnPausar.Click
                esperar = True
                lMantener()
            End Sub
        
            Private Sub btnSeguir_Click(sender As System.Object, e As System.EventArgs) Handles btnSeguir.Click
                esperar = False
                lMantener()
            End Sub
        
            Private Sub lMantener()
                If esperar = True Then
                    System.Threading.Thread.Sleep(12000)
                Else
                    System.Threading.Thread.Sleep(0)
                End If
            End Sub
        LO cierto es que tu idea me pareció muy buena, pero no resultó.
        Una verdadera lástima.
        Gracias de nuevo por tu paciencia.

        Comentario


        • #5
          Pero tienes que jugar con el control "Timer". Y probablemente resulte más práctico poner "Timer1.Enabled = True" cuando pulses el botón de "SUSPENDER", y "Timer1.Enabled = False" cuando pulses el botón de "REANUDAR".
          El código (habiendo llamado Timer1 al control Timer) sería asÍ:
          Código:
          Private Sub btnPausar_Click(sender As System.Objerct, e As System.EventArgs) Handles btnPausar.Click
               Timer1.Enabled = True
          End Sub
          
          Private Sub btnSeguirr_Click(sender As System.Objerct, e As System.EventArgs) Handles btnSeguir.Click
               Timer1.Enabled = True
          End Sub
          
          Private Sub Timer1_Timer( sender....
               Timer1.Interval = 1000
          End sub
          José María Movilla Cuadrado
          ______________________
          Normas del foro
          www.foro.vb-mundo.com
          www.vb-mundo.com

          Comentario


          • #6
            Si cuando yo digo que eres un genio es la pura realidad.
            Así funciona perfectamente.
            Gracias José María.

            Comentario


            • #7
              Pues me alegro mucho de haber acertado... Porque no creas que las tenía todas conmigo...
              José María Movilla Cuadrado
              ______________________
              Normas del foro
              www.foro.vb-mundo.com
              www.vb-mundo.com

              Comentario

              Trabajando...
              X