Как я могу отложить выполнение алгоритма для визуального отображения результатов каждой итерации в алгоритме? Когда я пытаюсь обновить высоту объектов в приведенном ниже коде, он отображает только конечный результат. Как я могу показать, что произошло на каждом шагу?Как визуализировать шаги алгоритма
namespace BubbleSortRappresentazione_grafica
{
public partial class MainWindow : Window
{
int[] v;
public MainWindow()
{
InitializeComponent();
Random rnd = new Random();
v = new int[10];
for (int j = 0; j < 10; j++)
{
v[j] = rnd.Next(0, 100);
}
_0.Height = v[0] + 20;
_1.Height = v[1] + 20;
_2.Height = v[2] + 20;
_3.Height = v[3] + 20;
_4.Height = v[4] + 20;
_5.Height = v[5] + 20;
_6.Height = v[6] + 20;
_7.Height = v[7] + 20;
_8.Height = v[8] + 20;
_9.Height = v[9] + 20;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
// algoritmo ordinamento
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
if (v[j] > v[i])
{
int tmp = v[j];
v[j] = v[i];
v[i] = tmp;
_0.Height = v[0] + 20;
_0.Content = v[0];
_1.Height = v[1] + 20;
_1.Content = v[1] ;
_2.Height = v[2] + 20;
_2.Content = v[2];
_3.Height = v[3] + 20;
_3.Content = v[3] ;
_4.Height = v[4] + 20;
_4.Content = v[4];
_5.Height = v[5] + 20;
_5.Content = v[5];
_6.Height = v[6] + 20;
_6.Content = v[6];
_7.Height = v[7] + 20;
_7.Content = v[7];
_8.Height = v[8] + 20;
_8.Content = v[8];
_9.Height = v[9] + 20;
_9.Content = v[9];
Thread.Sleep(100);
}
}
}
}
}
}
Итак, вы хотите просмотреть компоненты, изменяющие контент и высоту «в реальном времени»? –
Модификации только повторены для графического интерфейса, когда этот метод выполнен, а не во время, так как эти вызовы блокируют поток пользовательского интерфейса. Используйте «BackgroundWorker», чтобы увидеть изменения в реальном времени. – Kilazur
, когда я делаю цикл, например, я хочу изменить размер кнопок в, он меняет размер, но графически нет, он показывает изменения в конце цикла, а не во время его, поэтому я хотел бы найти то, что делает изменения графики во время цикла –