當我開始計劃,我需要加載一些項目和初始化它們。所以我在Thread中創建了一個進度條(下一個PB)。當加載開始時,每個連接都可以,但是在一瞬間,PB會停止並在init結束時跳轉到結束位置。進度條是跳躍
這裏線程,這增加了進度條每個程序塊。
public void initMapBlocks(int n, int m)
{
this.Dispatcher.Invoke(delegate()
{
Loader.Visibility = Visibility.Visible;
mainWindow.Visibility = Visibility.Hidden;
});
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
this.Dispatcher.Invoke(delegate()
{
MapPart mp = new MapPart();
mainCanvas.Children.Add(mp);
Loader.addPoint(1);
});
}
}
this.Dispatcher.Invoke(delegate()
{
Loader.Visibility = Visibility.Hidden;
mainWindow.Visibility = Visibility.Visible;
});
}
是否有可能獲得完整的動畫?
--------更新--------
這裏代碼,我添加到進度欄的值。
public void addPoint(int x)
{
itemCountAlready += x;
loaderBar.Value += x;
}
-----更新2 -------
private void Window_Loaded(object sender, RoutedEventArgs e)
{
Thread thread = new Thread(new ThreadStart(() => initMapBlocks(100, 100)));
thread.Start();
}
你在哪裏設置進度的價值?你的代碼段應該做什麼? – mm8
@ mm8函數我在Update中包含的addPoint。 loaderBar它的進度條。 –
您發佈的所有代碼都在UI線程上運行。你的長期工作在哪裏? – mm8