Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#覆盖时非常缓慢地保存图像_C#_Image_Save_Overwrite - Fatal编程技术网

C#覆盖时非常缓慢地保存图像

C#覆盖时非常缓慢地保存图像,c#,image,save,overwrite,C#,Image,Save,Overwrite,起初,我的VS2017快速流畅地创建图像。但是当它第二次运行并且具有相同文件名的图像已经存在时,程序每3次在bitmap.Save(…)步骤暂停一次。创建所有20个*.png文件需要5.4秒,如果目标目录中已经存在所有文件,则需要41.4秒。我相信它是在处理文件覆盖 代码如下: for (int i = 0; i < 20; i++) { Bitmap bitmap = new Bitmap(5000, 5000); Graphics graphics = Graphics

起初,我的VS2017快速流畅地创建图像。但是当它第二次运行并且具有相同文件名的图像已经存在时,程序每3次在
bitmap.Save(…)
步骤暂停一次。创建所有20个*.png文件需要5.4秒,如果目标目录中已经存在所有文件,则需要41.4秒。我相信它是在处理文件覆盖

代码如下:

for (int i = 0; i < 20; i++)
{
    Bitmap bitmap = new Bitmap(5000, 5000);
    Graphics graphics = Graphics.FromImage(bitmap);

    //Draw something here...

    bitmap.Save(i.ToString() + ".png", System.Drawing.Imaging.ImageFormat.Png);                
    Console.WriteLine("Image Saved");
    bitmap.Dispose();
    graphics.Dispose();
}
for(int i=0;i<20;i++)
{
位图位图=新位图(50005000);
Graphics Graphics=Graphics.FromImage(位图);
//在这里画点东西。。。
保存(i.ToString()+“.png”,System.Drawing.Imaging.ImageFormat.png);
Console.WriteLine(“已保存图像”);
Dispose();
graphics.Dispose();
}
奇怪的是,如果我复制代码并粘贴到另一台计算机上创建的新项目上,这个问题就不会发生。但是如果那台计算机运行从我的项目中发布的*.exe文件,它也会有同样的问题


它是否与我的VisualStudio环境设置有关?谢谢

我发现问题源于Trend防病毒软件。关闭后,程序恢复正常。可能是因为防病毒软件正在监视或扫描覆盖过程,使其变得缓慢。
谢谢你们的回复。

我刚刚运行了你们的代码,还没有发现任何性能问题。当你说它暂停时,定义“非常慢”的暂停时间有多长?您以前是否尝试过删除文件?请尝试使用绝对路径,而不是与exe相关的路径,以查看这是否有影响。@SimonPrice每3个循环暂停5秒,正如您所说,它假定不会有任何性能问题,但确实发生了。@Sinatr创建所有20个*.png文件只需5.4秒,但如果所有文件都已存在,则为41.4秒。如果我删除所有存在的文件,它会像预期的那样顺利运行,但我仍然好奇为什么它只发生在我的计算机上。