我想从Parallel.For内更新WPF文本块,但我不能。我使用调度员,但我想,我做错了。所有的工作都是在第一时间完成的,然后textblock迭代地和快速地更新。这里是我的代码:Parallel.For更新文本块
Parallel.For(0, currentScene.Textures.Count, delegate(int i)
{
TextureObject texture = (currentScene.Textures[i]);
MainWindow.Instance.StatusBarText.Dispatcher.BeginInvoke(new Action(()
=> MainWindow.Instance.StatusBarText.Text = "Loading Texture " + i
+ " - " + texture.Name), null);
LoadTexture(texture);
}
});
因此,当我在下面回答Paul时,在后台运行加载会导致性能的巨大损失。另外,Task.Create()必须位于较旧的.net版本中。你是否认为这将有可能以并行的方式加载纹理并更新界面而不会在速度上做出可衡量的妥协?我希望我不要求太多;) – muku 2011-01-30 14:05:45