У меня есть такой код:
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 в качестве задачи, это ускорит процесс, но я предполагаю, что получаю исключение, потому что следующая итерация цикла пытается нарисовать конечный объект изображения, пока происходит сохранение. Я думаю, я мог бы использовать замок, но я боюсь, что это может замедлить ход событий?
Есть ли исправление или я должен просто удалить задачу?