Визуализация сортировки выбором

441
22 января 2017, 13:31
for (int i = 0; i < array.Count; i++)
{
    Thread.Sleep(500);
    int minValueIndex = i;
    for (int j = i + 1; j < array.Count; j++)
    {
        if (array[j] < array[minValueIndex])
        {
            minValueIndex = j;
        }
    }
    int temp = array[i];
    array[i] = array[minValueIndex];
    array[minValueIndex] = temp;
    chart1.Series[0].Points.DataBindXY(null, array);
}

Код почему-то виснет и только через секунд 10 строит уже отсортированный график, то бишь промежуточных построений не видно. Из-за чего это может быть?

Догадываюсь, что влияет Thread.Sleep(), но как обойтись без него не знаю, ибо необходимо пошагово [с интервалами между прорисовками] показать сортировку...

Answer 1

Ты в основном потоке делаешь остановку на полсекунды (Thread.Sleep), т.е он сначала считает, заносит в chart, при этом поток формы останалвивается на сортировке (не обновляется окно и т.д.) после этого обновляет форму, попробуй сразу после занесения значения в chart вызвать refresh() для него.

READ ALSO
Система модулей и плагинов ASP.NET MVC Core

Система модулей и плагинов ASP.NET MVC Core

Мы делаем CMS, и хотим сделать возможность плагинов для неёНапример: есть статья, и плагин с помощью которого к статье можно ставить лайки

419
Что не так с моим кодом? MVVM

Что не так с моим кодом? MVVM

При нажатию на кнопки в ItemsControl'е слева должно генерироваться поле в соответствии с данными в левом поле размерами,но поле не генерируются...

359
Остановка стороннего метода по таймеру c#

Остановка стороннего метода по таймеру c#

Есть метод сторонней библиотекиОн обращается к серверу и либо получает данные и завершается, либо через 10 секунд автоматически закрывается

381