Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/04/2016, 16:40
Antonio16
 
Fecha de Ingreso: abril-2016
Ubicación: México
Mensajes: 5
Antigüedad: 8 años, 8 meses
Puntos: 0
Exclamación Uso de "Timer" en lugar de "Thread.Sleep" C#

Buenas tardes a todos en el foro, tengo un pequeño sistema de publicidad, en el cual guardo las rutas de unas imágenes en un arreglo y posteriormente recorro dicho arreglo y muestro las imágenes. Para poder visualizar la imágen de cada arreglo he usado el Thread.Sleep, todo funciona perfecto a excepción de los archivos con extensión (.gif). Ya que según un usuario este evita que se reproduzca y habría que cambiarlo por un timer. He probado con diferentes videos y no funciona mi código con el uso del timer (no se si sea porque recorro un arreglo o me falte declarar una librería) . Esperaba que alguien aqui pudiera ayudarme. Les dejo mi codigo para que observen donde coloque los Thread.Sleep, se supone que solo debo poner el código y ya o cómo?

Código:
 // Obtiene la ruta del exe del programa (guardarlo en variable path)
            string path = System.IO.Path.GetDirectoryName(
            System.AppDomain.CurrentDomain.BaseDirectory);

            // Comprueba si el directorio "Media" existe en donde se encuentra el ejecutable previamente obtenido.
            string miDirectorio = @path + @"\Media";
            
            // Si existe no hace nada y si no existe crea la carpeta
            if (!Directory.Exists(miDirectorio))
            Directory.CreateDirectory(miDirectorio);

            // Se realiza una lectura de archivos jpg, png y gif en la carpeta Media. Todas las rutas se almacenan en arreglos.
            string lecturadearchivos = @miDirectorio;

            // Arreglo de archivos jpg
            string[] ficheros = Directory.GetFiles(lecturadearchivos, "*.jpg");
            // Arreglo de archivos png
            string[] ficheros2 = Directory.GetFiles(lecturadearchivos, "*.png");
            // Arreglo de archivos gif
            string[] ficheros3 = Directory.GetFiles(lecturadearchivos, "*.gif");


            // Se hace el recorrido del arreglo ficheros (jpg). 
            foreach (string ruta in ficheros)
            {
                // Y se muestran las imagenes contenidas en dicho arreglo.
                pictureBox1.Image = Image.FromFile(ruta);

                //Hago una pausa para que puedan ver la imagen
                Thread.Sleep(1000);
                Application.DoEvents();
            }


            // Se hace el recorrido del arreglo ficheros2 (png). 
            foreach (string ruta2 in ficheros2)
            {
                // Y se muestran las imagenes contenidas en dicho arreglo.
                pictureBox1.Image = Image.FromFile(ruta2);

                //Hago una pausa para que puedan ver la imagen
                Thread.Sleep(1000);
                Application.DoEvents();
            }


            // Se hace el recorrido del arreglo ficheros3 (gif). 
            foreach (string ruta3 in ficheros3)
            {
                // Y se muestran las imagenes contenidas en dicho arreglo.
                pictureBox1.Image = Image.FromFile(ruta3);
                
                //Hago una pausa para que puedan ver la imagen
                Thread.Sleep(1000);
                Application.DoEvents();
            }   
        }