2

我有一个 C# 程序,它在处理大量图像后将它们保存到磁盘。由于需要保存这么多图像,这似乎需要相当长的时间。

现在,我想知道:有什么方法可以加快在 C# 中保存图像的速度?目前,我正在使用标准的bmp.Save(filename)方法。

如果有帮助,图像生成过程的一部分涉及使用锁定位更快地访问和修改像素值,所以也许当我这样做时,图像可以同时保存到磁盘?如果这个想法很愚蠢,我深表歉意,但我对 C# 还是有些陌生。

4

1 回答 1

3

您当然可以为每个图像保存启动一个新线程。这会减少一点时间,但磁盘会成为瓶颈。

另一种选择是将图像保存到临时缓冲区列表中,然后将控制权返回给程序。然后有一个线程在后台将每个写入磁盘。当然,这只会使这种情况迅速发生。不过,它可能会满足您的需求。

我确信 .NET 已经实现了某种异步 I/O 来为您执行此操作。我知道 Windows 有,所以它在 .NET 中是有道理的。

这可能会有所帮助。

http://msdn.microsoft.com/en-us/library/kztecsys(v=vs.71).aspx

于 2012-08-08T23:05:43.253 回答