Задание: Необходимо разработать программу, в которой было реализовано два потока (нити). Эти потоки должны запускаться одновременно и сортировать один и тот же массив двумя разными способами:
В программе должны использоваться следующие механизмы:
по нажатии в кнопку Генерэйт справа в textbox выведется массив с случайными числами. При нажати на кнопку Сорт снизу в textbox выводится уже отсортированный массив. Если в Чекбокс стоит галочка, то только один поток(одна из двух сортировок) может работать с данными(массив чисел), а другой поток ждет.
Вот обработчик события, когда нажимаем на кнопку Сорт:
private void btnSort_Click(object sender, EventArgs e)
{
textBox1.Clear();
void Bubble()
{
for (int i = 0; i < 9; i++)
for (int j = 0; j < 9 - i; j++)
{
if (checkBox.Checked == true) sem.WaitOne();
if (array[j] > array[j + 1])
{
swap(ref array[j], ref array[j + 1]);
Thread.Sleep(39);
}
if (checkBox.Checked == true) sem.Release();
}
}
Thread one = new Thread(Bubble);
one.Start();
for (int i = 0; i < 9; i++)
{
int min = i;
for (int j = i + 1; j < 10; j++)
{
if (checkBox.Checked == true) sem.WaitOne();
if (array[j] < array[min])
{
min = j;
Thread.Sleep(39);
}
if (checkBox.Checked == true) sem.Release();
}
swap(ref array[min], ref array[i]);
}
Проблема в том, что иногда алгоритм работает правильно, а иногда неправильно, подскажите где мне нужно что изменить, где-то м.б. мне waitone и release в другие места поместить?
Если честно, даже предположений нет в чём ошибкаВозникает после запуска в одном из двух мест, в зависимости от того, какое из чисел больше
Есть такой код, который работает до получения финального значения из JSONСам файл выглядит примерно вот так:
Нужно сделать меню(ul>li*5) в js без html, изначально body в файле indexhtml должен быть пустой, все необходимые элементы генерируются с использованием...