C# 使用EXIF工具将EXIF从一个图像复制到另一个图像花费的时间太长

C# 使用EXIF工具将EXIF从一个图像复制到另一个图像花费的时间太长,c#,winforms,exif,exiftool,C#,Winforms,Exif,Exiftool,我使用以下代码将exif数据从一个文件复制到另一个文件 当直接从命令行运行时,该工具速度很快。但是当从winform应用程序执行命令时,需要花费更多的时间。这里出了什么问题?请给我一些建议。有没有其他方法可以实现这一点 foreach(string cpath in filelist) { string path = "-overwrite_original -TagsFromFile " + "\"" + file + "\"" +" "+ "\"" + outdir + "\\" +

我使用以下代码将exif数据从一个文件复制到另一个文件

当直接从命令行运行时,该工具速度很快。但是当从winform应用程序执行命令时,需要花费更多的时间。这里出了什么问题?请给我一些建议。有没有其他方法可以实现这一点

foreach(string cpath in filelist)
{
    string path = "-overwrite_original -TagsFromFile " + "\"" + file + "\"" +" "+ "\"" + outdir + "\\" + Path.GetFileNameWithoutExtension(file) + ext + "\"";
                        runCmd(path);
}

  public void runCmd(string command)
    {

        ProcessStartInfo cmdsi = new ProcessStartInfo("exiftool.exe");
        cmdsi.WindowStyle = ProcessWindowStyle.Hidden;
        cmdsi.Arguments = command;
        Process cmd = Process.Start(cmdsi);
        cmd.WaitForExit();    
    }

文件列表有多大?它是从第一个文件开始变慢还是随着时间的推移变慢?速度有多慢(1秒,10)?@Evk无论列表大小,结果都是一样的。我试过使用单个文件。该文件的分辨率为6000×4000像素。直接从winforms开始,该过程在1秒内完成,需要约3秒。如果您在多个文件上运行此操作,其中一个问题将由解决。exiftool的启动时间是最大的时间成本,因此为每个文件分别运行exiftool将显著增加总体运行时间。将文件列表合并为单个命令或将列表保存为临时文件并使用将减少运行时间。@StarGeek感谢您的输入,启动时间似乎是罪魁祸首。我可以将列表写入文件,但如何传递输出参数?你可以添加一个例子…继续你的,因为这更适合张贴的例子比评论这里。