Search code examples
c#audiotaskthread-sleeppause

How to make two pictures not visible after a certain time


I'm making a memotest and I need to press two different images and they need to keep visible for 3-5 seconds. I've tried Thread.Sleep(5000) but it doesn't show me the second one. What should I do? The only way I've founded to see for some seconds the images was by putting a MessageBox but that isn't the idea and I don't know other way to do it.

if (pic != null && pic.Name == fondos[i].Name)
{
    if (CantClick == 0)
    {
        ParejaActual = listRandom[i].pareja;
        CantClick = 1;
        primerI = i;
        picAnterior = pic;
        imgAnterior = img;
        pic.Visible = false;

    }
    else if (CantClick == 1)
    {
        pic.Visible = false;
        if (ParejaActual == listRandom[i].pareja)
        {
            SoundPlayer simpleSound = (new SoundPlayer(Configuracion.RootFolder + "aplau.wav"));
            simpleSound.Play();
            Ganando++;
            label3.Text = Ganando.ToString();
            //MessageBox.Show("Si");
            //NO SE DESTAPA LA SEGUNDA.
            //Thread.Sleep(5000);
            CantClick = 0;
            img.Visible = false;
            imgAnterior.Visible = false;
            Application.DoEvents();

        }
        else
        {

            (new SoundPlayer(Configuracion.RootFolder + "sad.wav")).Play();
            MessageBox.Show("No");
            Mal++;
            CantClick = 0;
            label4.Text = Mal.ToString();
            pic.Visible = true;
            picAnterior.Visible = true;
        }
    }
}

Thank you!


Solution

  • Instead of using Thread.Sleep , use System.Timers class. After an interval, just hide one image and show the other. Tell me if you want any other help.