我有一些类似于这样的代码:
public void SaveImage(int Counter)
{
var task = Task.Factory.StartNew(() =>
{
var image = FinalImage;
if (image != null)
{
image.Save(FinalImageSaveLocation + "test" + Counter + ".bmp");
}
}, TaskCreationOptions.PreferFairness);
}
我有一个for循环使用类似下面的代码创建x张图片:
for(int i = 0; i < 100; i++)
{
Pencil.DrawImage(image, x, y); //Pencil is created at a initialisation stage
SaveImage(i); //by Pencil = Graphics.FromImage(FinalImage);
}
我认为将SaveImage方法作为任务进行处理可以加快速度,但我猜测之所以出现异常是因为循环的下一次迭代正在尝试向最终图像对象进行绘制,而同时正在进行保存。我猜我可以使用锁,但我担心这会减慢速度?是否有解决方法或者我应该只是删除此任务?