Migająca dioda

0

Witam, jak zrobić efekt migającej diody. Dioda zapala się i gasi. Pierwszy pomysł co przychodzi mi do głowy do podmieniać obrazki w PictureBox ale coś mi to nie działa. Pisze program w windows forms i taka migocząca dioda by mi się przydała.

void migajDioda()
        {
            pictureBox2.BackgroundImage = dioda;
            Thread.Sleep(100);
            pictureBox2.BackgroundImage = null;
            Thread.Sleep(100);
        }

To wszystko jest w timerze ale coś działać nie chce, jakieś pomysły ?

1

Witam,

A Timer nie będzie się lepiej sprawował? Pamiętaj o tym żeby robić podmianę obrazka przez Invoke bo Timer działa w osobnym wątku.

Pozdrawiam,

mr-owl

0

Zrobiłem z invoke ale dalej mi nie przałacza obrazków, nie wiem co jest grane.

0

Jeżeli robisz to w watku GUI to nic dziwnego. Klasyczny blad.
Podmieniasz, zamrażasz watek, podmieniasz, zamrażasz watek ... a potem sie GUI jest odrysowywane... to jak ma być widać zmiane ? :)
Nigdy nie uzywaj sleepa w watku GUI. NIGDY. W ogole uzywanie sleepa nie jest ok.

W osobnym watku/tasku steruj i wyzwalaj zmiane (ew w głównym ale nie sleepem a jakims dwoma timerami).

Pawel

0

W timerze

            int ms = DateTime.Now.Millisecond;

            pictureBox2.Visible = (ms > 500) ? true : false;
0

Dzięki z tym osobnym wątkiem działa :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1