none
Definir intervalos entre execuções de ação de um thread RRS feed

  • Pergunta

  • Pessoal, pesquisei e vi vários códigos na net mas não consegui resolver uma coisa de um trabalho sobre threads da faculdade.

    O esquema é o seguinte, eu quero que enquanto o mouse estiver em cima de uma listbox, ela fique mudando de cores que eu definirei em um certo intervalo de tempo.

    Mais ou menos assim (linguagem em alto nivel):

    bool mousesobre = false;

    Evento MouseHover na listbox

    {

    mousesobre = true;

    inicia thread cores;

    }

    public void cores()

    {

    enquanto(mousesobre=true)

    {

    listbox.cordefundo = cor.azul;

    (esperar 1 segundo)

    listbox.cordefundo = cor.vermelho;

    (esperar 1 segundo)

    listbox.cordefundo = cor.verde;

    (esperar 1 segundo)

    listbox.cordefundo = cor.amarelo;

    }

    }

    Eu tentei fazer com Thread.Sleep(1000), funciona, só que só a ultima cor (amarela) q é definida. É como se ele anulasse a cor que eu tinha definido anteriormente. Eu to tentando fazer com timer, mas eu não to conseguindo saber comparar o quanto de tempo que passou nele.

    Como faz?

    domingo, 23 de novembro de 2014 17:07

Todas as Respostas

  • Boa tarde parceiro, por está em Thread ele executa as alterações de cores de forma simultânea então você tem que usar o método descrito nessa página:

     http://msdn.microsoft.com/pt-br/library/c5kehkcz.aspx

    para executar uma Thread por vez mantendo o Thread.Sleep(1000)

     
    domingo, 23 de novembro de 2014 17:56