Migająca dioda

UA
  • Rejestracja: dni
  • Ostatnio: dni
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.

Kopiuj
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 ?

mr-owl
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 206
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

UA
  • Rejestracja: dni
  • Ostatnio: dni
0

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

FP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 132
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

gg
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 574
0

W timerze

Kopiuj
            int ms = DateTime.Now.Millisecond;

            pictureBox2.Visible = (ms > 500) ? true : false;
UA
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.