用户。我遇到了一个我找不到答案的问题。我对线程(在 C# 中)有点陌生,遇到了这个问题。我有这个带效果的图像编辑器,但由于运行速度太慢,我尝试将其拆分为线程。问题是他总是使用效果列表中的最后一项来运行“CreatePreview”命令。因此,如果我激活了效果:“黑/白”、“饱和”和“绿色滤镜”,它将尝试使用绿色滤镜创建 3 个预览。
谁能帮我解决这个问题?
private void CreatePreviews(string fileName, List<IEffect> effects)
{
List<Task> tasks = new List<Task>();
foreach (var effect in effects)
{
//previews.Add(effect, CreatePreview(fileName, effect));
Task task = new Task(delegate()
{
string result = CreatePreview(fileName, effect);
Dispatcher.BeginInvoke(new Action(
delegate()
{
ShowPreview(result, effect.DisplayName);
}));
});
task.Start();
}
}