• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

crisoft

Boa tarde... Alguém me pode explicar com posso criar um temporizador em C#?

5 mensagens neste tópico

Nomeadamente o que eu precisava era de criar uma função que me actualizasse de minuto a minuto um determinado écran...

Nesse ecrã tenho um listbox, com dados de uma tabela em SQL, e precisava de minuto a minuto actualizar a leitura da tabela para a listbox sem necessidade de intervenção do utilizador... assim como de x em x tempo mudar de página...

Alguém me pode dar uma sugestão para resolver isto?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Usas um timer.

//Criacao e iniciacao de um timer

System.Timers.Timer aTimer = new System.Timers.Timer();
aTimer.Elapsed+=new ElapsedEventHandler(OnTimedEvent);
// Set the Interval to 5 seconds.
aTimer.Interval=5000;
aTimer.Enabled=true;
//obs: a propriedade AutoReset  está true por omissão


//Aqui defines o que queres que ele faca de x em x tempo
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
    Console.WriteLine("Hello World!");
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O Timer eu até consegui pôr a funcionar, mas depois  não consigo chamar nenhum objecto do ecrã, de dentro do evento do timer... Diz-me que não posso aceder desta forma a um objecto não estático pertencente a outra thread..

Em vez do Console.writeline não consigo escrever lá p.ex. this.frame1.refresh();

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois, não se pode executar código em objectos de UserInterface noutra thread que não a de UI.

Sabes fazer invocação assíncrona?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois, não se pode executar código em objectos de UserInterface noutra thread que não a de UI.

Sabes fazer invocação assíncrona?

Como posso fazer isso então?

O erro que me dá de compilação é o seguinte:

"An object reference is required for the non-static field, method, or property 'ProjectName.Main.frame1' "

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora