Ir para conteúdo
Fórum Script Brasil
  • 0

Aplicação Rodando Em Segundo Plano


ppgsalomao

Pergunta

Olá galera,

A algum tempo já que eu não posto por aqui ...

Minha dúvida é simples ... como faço para que a minha aplicação rode em segundo plano ? Por exemplo ... eu podeer executar um loop ... teoricamente infinito ... só que em segundo plano ... podendo ter um CommandButton que parasse ele ... um "cancelar" !

Eu tenho quase certeza que dá pra fazer ... só não sei como ! Alguém pode me ajudar ?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Não tenho uma aplicação em especial para isso ... é uma curiosidade que eu tenho ... as vezes eu perdia algumas aplicações por que um loop ou outro dentro dela entravam em Loop Infinito e com isso eu perdia o código se não tivesse salvado ...

Outra apilcação é colocar isso num programa de gráficos, que assim enquanto o Programa gera o gráfico, o usuário não fica com o PC indisponível ...

Ou seja, não tem uma aplicação fixa !

Como funciona essas duas coisas ?

Link para o comentário
Compartilhar em outros sites

  • 0

Não tenho uma aplicação em especial para isso ... é uma curiosidade que eu tenho ... as vezes eu perdia algumas aplicações por que um loop ou outro dentro dela entravam em Loop Infinito e com isso eu perdia o código se não tivesse salvado ...

Para isso é só apertar CTRL+PAUSE que o VB pára o código. cool.gif

Outra apilcação é colocar isso num programa de gráficos, que assim enquanto o Programa gera o gráfico, o usuário não fica com o PC indisponível ...

Ou seja,  não tem uma aplicação fixa !

Como funciona essas duas coisas ?

Bom, se você colocar um Timer, uma label e um botão no seu form você pode verá o timer em ação. No evento (único) Timer do Timer, coloque:

    Static i As Integer
    Label1.Caption = i
    i = i + 1
E, no evento Click do botão coloque:
    Label1.Caption = "um teste"
Defina a propriedade Interval do Timer para 1000 (1 segundo). Depois, execute o projeto. Você verá que na Label irá aparecer o valor 0, 1, 2, 3, 4, e irá continuar crescendo. Porém, apesar disso, você ainda conseguirá mexer totalmente no restante do programa. Portanto, clique no botão e você verá que momentâneamente o caption da label irá mudar para "um teste" e depois continuará a seguir a numeração. Aquela numeração é um "loop infinito" que só vai parar quando o valor chegar ao valor máximo de um inteiro (é claro que pode-se criar condições na qual esse "loop" nunca termine mesmo). E vamos incrementar um pouco mais? Agora vamos utilizar um Do While... Loop verdadeiramente infinito. Coloque mais um botão nesse mesmo projeto e o seguinte código nele:
    Label1.ForeColor = vbWhite
    Do While True
        i = CLng(Rnd(1) * 65535)
        Label1.BackColor = i
        DoEvents
    Loop

Esse código simplesmente gera um número randômico e utiliza ele como cor para o fundo da label. Agora, execute o projeto. Você verá os números passando na label. Clique no segundo botão (esse que acabamos de criar). Agora, os números continuarão passando na label, porém, ao mesmo tempo, ela ficará mudando de cor. E, agora aperte no primeiro botão. Você verá o texto aparecer na label (e ela continuará mudando de cor) e momentos depois a contagem continuará (e a mudança de cor também). Ou seja, duas coisas estão acontecendo ao mesmo tempo e mais uma terceira pode ser executada. Sacou? wink.gif

É provável que ao fechar a janela do projeto, depois de ativar o segundo botão, o programa não feche completamente (a janela vai desaparecer mas o VB vai continuar executando o programa). Basta apertar Stop na tela do VB para realmente parar. Uma possível solução para isso seria colocar uma condição no Do While para quando a janela for fechada ele quebrar o loop.

Bom, espero ter ajudado

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...