0

我有一个带有文件观察器的表格,他将放置在文件夹中的所有视频文件传输到多个地址。什么是最好的选择,以便在添加多个文件时甚至能够在一个线程中执行每次传输。这是我的代码示例:

DockingBarTransferEntities context = new DockingBarTransferEntities();

private void fileSystemWatcher1_Changed(object sender, System.IO.FileSystemEventArgs e)
        {
            IEnumerable<Diretorios> directories = context.Diretorios.ToList();            

            foreach (var destino in directories)
            {
                try
                {
                   Transfere(e.FullPath,Path.GetFileName(e.FullPath),destino);

                }
                catch (Exception ex)
                {
                    textBox1.Text += "Error: " + ex.Message;
                }
            }
        }

        public void Transfere(string fullPath, string name, Diretorios diretorio)
        {           
            try
            {
                if (Directory.Exists(diretorio.Caminho))
                {
                    string fileName = Path.GetFileName(fullPath);
                    fileName = String.Format("{0}\\{1}", diretorio.Caminho, fileName);

                    FileInfo arquivo = new FileInfo(fullPath);

                    arquivo.CopyTo(fileName, true);                  

                }
            }
            catch (Exception ex)
            {

            }
        }
4

1 回答 1

1

它应该像这样简单:

Task.Factory.StartNew(() => Transfere(e.FullPath, Path.GetFileName(e.FullPath), destino));

而不是直接调用Transfere

于 2012-12-11T15:32:57.263 回答