#c_sharp
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(), но как обойтись без него не знаю, ибо необходимо пошагово [с интервалами между прорисовками] показать сортировку...
Ответы
Ответ 1
Ты в основном потоке делаешь остановку на полсекунды (Thread.Sleep), т.е он сначала считает, заносит в chart, при этом поток формы останалвивается на сортировке (не обновляется окно и т.д.) после этого обновляет форму, попробуй сразу после занесения значения в chart вызвать refresh() для него.
Комментариев нет:
Отправить комментарий