我想從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