none
Trhead C# RRS feed

  • Pergunta

  • Pessoal estou com um problema e não sei a solução, tenho um Timer e a cada 1 segundo ele verifica o status de um registro e altera a propriedade visible de uma imagem na tela, para false ou true dentro do timer, só que isso não está acontecendo, e fiquei sabendo que não teria como fazer isso com um Timer, me falaram para usar theads, como que seria uma trhead para ser executada a cada 1 segundo, e nesse caso isso resolveria meu problema?

     

     Abs.

    segunda-feira, 30 de junho de 2008 23:08

Todas as Respostas

  • Cara... eu acho que você pode fazer com timer sim...

    segue um exemplo:

     

    class Program

    {

    static void Main(string[] args)

    {

    TimerCallback timerCallBack = new TimerCallback(Funcao1Seg);

    Timer timer = new Timer(timerCallBack, null, 1, 1000);

    Console.ReadKey();

    }

     

    private static void Funcao1Seg(object state)

    {

    Console.WriteLine("Executou");

    }

    }

     

    Rodando esse console application.. você pode ver que a cada 1 segundo ele imprime "Executou" na tela...

    tenta adaptar do jeito que você precisa...

     

    Valeu!

    terça-feira, 1 de julho de 2008 14:56
  • Caso você realmente precise que seja thread... segue outro exemplo:

     

    class Program

    {

    static void Main(string[] args)

    {

    Thread thread = new Thread(new ThreadStart(Funcao1Seg));

    thread.Start();

    }

     

    public static void Funcao1Seg()

    {

    while (true)

    {

    Console.WriteLine("Executou");

    Thread.Sleep(1000);

    }

    }

    }

     

    Mas eu acho o timer mais..... "profissional"...

    hehehe

     

    Valeu!

    terça-feira, 1 de julho de 2008 14:58
  • Oi, lembrando que para alterar estados de componentes de formulários só é possível na própria thread em que eles foram criados.

     Olha um exemplo bem bobinho que fica dixando visivel ou não um botão em um formulário.

     []´s

    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                timer1.Interval = 1000 * 2;
                timer1.Enabled = true;
                timer1.Start();
            }

            private delegate void timer1_TickDelegate(object sender, EventArgs e);

            private void timer1_Tick(object sender, EventArgs e)
            {
                if (button1.InvokeRequired)
                {
                    button1.Invoke(new timer1_TickDelegate(timer1_Tick));
                    return;
                }
                button1.Visible = !button1.Visible;
            }

            private void button1_Click(object sender, EventArgs e)
            {
                timer1.Stop();
                timer1.Enabled = false;
            }
        }
    quarta-feira, 9 de julho de 2008 14:49