示例#1
0
        //Metodo para actualizar la lista de archivos
        public void ActualizarArchivos()
        {
            if (!Dispatcher.CheckAccess())
            {
                Delegado_Actualizar delegado = new Delegado_Actualizar(ActualizarArchivos);
                object[]            args     = { };

                Dispatcher.Invoke(delegado, args);
            }
            else
            {
                //Lista nueva
                DirectoryInfo files_list = new DirectoryInfo(ruta_archivos);

                //Lista nueva vs. lista vieja
                if (files_list.GetFiles().Length != archivos_compartidos.Count)
                {
                    //Actualizar la lista
                    archivos_compartidos = LoadFiles(ruta_archivos);

                    //Avisar cambio
                    EscribirParaTodos(Mensajes.ACTUALIZAR);

                    //Metodo para acceder a la interfaz grafica desde otro hilo
                    ActualizarListBox(archivos_compartidos);
                }
            }
        }
        //Metodo DELEGADO para actualizar la lista de archivos
        public void ActualizarArchivos(string[] data)
        {
            if (!Dispatcher.CheckAccess())
            {
                Delegado_Actualizar delegado = new Delegado_Actualizar(ActualizarArchivos);
                object[]            args     = { data };

                Dispatcher.Invoke(delegado, args);
            }
            else
            {
                archivos_compartidos.Clear();

                foreach (string dato in data)
                {
                    if (dato.Length > 3)
                    {
                        archivos_compartidos.Add(new Item(dato));
                    }
                }

                ActualizarListBoxArchivos(archivos_compartidos);
            }
        }