powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Начать цикл заново
24 сообщений из 24, страница 1 из 1
Начать цикл заново
    #40018444
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я пробегал цикл один раз
Код: c#
1.
2.
3.
4.
for (idx = 0; idx < test_list.Count; idx++)
{
    
}


теперь понадобилось запускать цикл безконечно пока чекбокс отмечен. переделывать код много работы, можно как то вернуться в цикл?
в Си я бы сделал goto и закрыл вопрос.
...
Рейтинг: 0 / 0
Начать цикл заново
    #40018445
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7
Я пробегал цикл один раз
Код: c#
1.
2.
3.
4.
for (idx = 0; idx < test_list.Count; idx++)
{
    
}


теперь понадобилось запускать цикл безконечно пока чекбокс отмечен. переделывать код много работы, можно как то вернуться в цикл?
в Си я бы сделал goto и закрыл вопрос.


вхиле?
...
Рейтинг: 0 / 0
Начать цикл заново
    #40018448
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
оказывается в шарпе тоже можно так сделать
Код: c#
1.
2.
3.
4.
5.
6.
7.
CYC_START:
for (idx = 0; idx < test_list.Count; idx++)
{
}

if (checkBoxESS.Checked)
    goto CYC_START;
...
Рейтинг: 0 / 0
Начать цикл заново
    #40018450
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
можно как то вернуться в цикл?
ну тут нет никакого "вернуться в цикл", тут просто начинается цикл заново.

А вообще, для бесконечного цикла (или цикла с условием выхода в середине) в шарпе обычно применяют while(true) {} (чтобы за goto камнями больно не били)
...
Рейтинг: 0 / 0
Начать цикл заново
    #40018452
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
Ролг Хупин
можно как то вернуться в цикл?
ну тут нет никакого "вернуться в цикл", тут просто начинается цикл заново.

А вообще, для бесконечного цикла (или цикла с условием выхода в середине) в шарпе обычно применяют while(true) {} (чтобы за goto камнями больно не били)


ну тогда мне надо сделать
Код: c#
1.
2.
3.
4.
5.
6.
7.
do
{
    for (idx = 0; idx < test_list.Count; idx++)
    {
    
    }
}while (checkBoxESS.Checked);


мне нужен один пробег по циклу если чекбокс не отмечен.
...
Рейтинг: 0 / 0
Начать цикл заново
    #40018457
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7

Код: c#
1.
goto CYC_START;


Ахтунг-ахтунг, Дейкстра в гробу перевернулся.

Учти еще то, что весь UI работает в одном потоке, поэтому, если у тебя код синхронный, то чекбокс все равно не "отметится" или "разметится" пока цикл, а скорее всего даже весь метод, не закончится.
...
Рейтинг: 0 / 0
Начать цикл заново
    #40018458
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7
Код: c#
1.
while (checkBoxESS.Checked);

Ну видишь, и сам всё знаешь.

Но, на самом деле формулировка
jenya7
запускать цикл безконечно пока чекбокс отмечен
немного попахивает. А что именно делается в цикле?
...
Рейтинг: 0 / 0
Начать цикл заново
    #40018459
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
jenya7
Код: c#
1.
while (checkBoxESS.Checked);

Ну видишь, и сам всё знаешь.

Но, на самом деле формулировка
jenya7
запускать цикл безконечно пока чекбокс отмечен
немного попахивает. А что именно делается в цикле?

в цикле пробегаю по тестам, запускаю их, получаю ответ.
...
Рейтинг: 0 / 0
Начать цикл заново
    #40018460
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat
jenya7

Код: c#
1.
goto CYC_START;


Ахтунг-ахтунг, Дейкстра в гробу перевернулся.

Учти еще то, что весь UI работает в одном потоке, поэтому, если у тебя код синхронный, то чекбокс все равно не "отметится" или "разметится" пока цикл, а скорее всего даже весь метод, не закончится.

да у меня простая апликашка без наворотов. Application.DoEvents(); сделает своё дело.
...
Рейтинг: 0 / 0
Начать цикл заново
    #40018462
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
чтобы за goto камнями больно не били

Я в этом году неожиданно понял, что я просто не знаю есть ли вообще в C# оператор goto. Специально полез в документацию - и, внезапно оказалось, что есть :)
...
Рейтинг: 0 / 0
Начать цикл заново
    #40018464
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7
да у меня простая апликашка без наворотов.

Это не повод писать говнокод. Если ты сегодня пишешь говнокод в "апликашке без наворотов", то завтра ты будешь писать такой же говнокод в продакшен-проекте, где кроме тебя будут другие люди, которые затем будут тратить на это свое время :)
...
Рейтинг: 0 / 0
Начать цикл заново
    #40018465
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7
fkthat
пропущено...

Ахтунг-ахтунг, Дейкстра в гробу перевернулся.

Учти еще то, что весь UI работает в одном потоке, поэтому, если у тебя код синхронный, то чекбокс все равно не "отметится" или "разметится" пока цикл, а скорее всего даже весь метод, не закончится.

да у меня простая апликашка без наворотов . Application.DoEvents(); сделает своё дело.


Да? ну-ну.
...
Рейтинг: 0 / 0
Начать цикл заново
    #40018473
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
jenya7
пропущено...

да у меня простая апликашка без наворотов . Application.DoEvents(); сделает своё дело.


Да? ну-ну.
Разум, покалеченный Visual Basic-ом.
Впрочем, ЕМНИП, кажется у ТС уже где-то в других топиках уже были попытки применить многопоточность, так что не все еще потеряно, я думаю.
...
Рейтинг: 0 / 0
Начать цикл заново
    #40018486
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Разум, покалеченный Visual Basic-ом.
Впрочем, ЕМНИП, кажется у ТС уже где-то в других топиках уже были попытки применить многопоточность, так что не все еще потеряно, я думаю.

А что с DoEvents не так, кроме того, что, типа как костыль? (Я, просто, в формсах не особо спец.)
...
Рейтинг: 0 / 0
Начать цикл заново
    #40018487
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Ролг Хупин
пропущено...


Да? ну-ну.
Разум, покалеченный Visual Basic-ом.
Впрочем, ЕМНИП, кажется у ТС уже где-то в других топиках уже были попытки применить многопоточность, так что не все еще потеряно, я думаю.


С другой стороны это разнообразит жизнь в условиях пандемии и сплошного карантина
...
Рейтинг: 0 / 0
Начать цикл заново
    #40018488
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Я в этом году неожиданно понял, что я просто не знаю есть ли вообще в C# оператор goto

Я чисто теоретически знал про это. За 15 лет работы с шарпом не использовал его ни разу.
...
Рейтинг: 0 / 0
Начать цикл заново
    #40018492
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
А что с DoEvents не так, кроме того, что, типа как костыль? (Я, просто, в формсах не особо спец.)
Он пришел еще из старого однопоточного VB/VBA. Его смысл - он приостанавливает ход выполнения операций текущего потока в пользу хендлеров оконных сообщений, которые стоят в очереди и ждут, когда UI поток освободится. В VB это позволяло простеньким образом организовать псевдомногопоточность (например обработать нажатие кнопки "отмена" во время вычислительного цикла ну или просто хотя бы продолжить работу формы для пользователя, когда у тебя идет фоновая операция (хотя получалось как раз наоборот, фоновая операция у тебя была основной, просто она должна была часто вызывать DoEvents, хотя бы 10 раз в секунду)).
Ну а при наличии многопоточности из коробки в .NET, DoEvents стал просто рудиментом
...
Рейтинг: 0 / 0
Начать цикл заново
    #40018493
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны
Я чисто теоретически знал про это. За 15 лет работы с шарпом не использовал его ни разу.
эх, были времена
Код: c#
1.
2.
ren 10, 10
run




без гото никак ))
Код: vbnet
1.
2.
3.
4.
10 INPUT I
20 IF I >= 0 THEN PRINT "Positive number or null" : GOTO 40
30 PRINT "Negative number"
40 END
...
Рейтинг: 0 / 0
Начать цикл заново
    #40018496
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проверил сейчас. goto шикарно работает. Application.DoEvents(); слегка подтормаживает скажем на рисайз экрана но кнопка стоп реагирует немедленно. что еще надо для бедного студента. :))
...
Рейтинг: 0 / 0
Начать цикл заново
    #40018499
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7
проверил сейчас. goto шикарно работает. Application.DoEvents(); слегка подтормаживает скажем на рисайз экрана но кнопка стоп реагирует немедленно. что еще надо для бедного студента. :))

Следующим этапом будет переписывание цикла for на if/goto? :))
...
Рейтинг: 0 / 0
Начать цикл заново
    #40018502
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7
проверил сейчас. goto шикарно работает. Application.DoEvents(); слегка подтормаживает скажем на рисайз экрана но кнопка стоп реагирует немедленно. что еще надо для бедного студента. :))


goto - да, там претензий быть не должно, там даже в CLR все конкретно.Им стоит пользоваться

Подтормаживание может быть связано с драйвером видеокарты, не?
...
Рейтинг: 0 / 0
Начать цикл заново
    #40018509
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ролг Хупин
jenya7
проверил сейчас. goto шикарно работает. Application.DoEvents(); слегка подтормаживает скажем на рисайз экрана но кнопка стоп реагирует немедленно. что еще надо для бедного студента. :))


goto - да, там претензий быть не должно, там даже в CLR все конкретно.Им стоит пользоваться

Подтормаживание может быть связано с драйвером видеокарты, не?


ну то что подтормаживает неудивительно. я в цикле обновляю визуальные компоненты, меняю цвет, надписи, в соответсвии с результатами теста. а ля анимация в том же потоке.
...
Рейтинг: 0 / 0
Начать цикл заново
    #40018513
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Подтормаживание может быть связано с драйвером видеокарты, не?
Подтормаживание связано с тем, что он тесты выполняет в потоке UI
...
Рейтинг: 0 / 0
Начать цикл заново
    #40018527
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Ролг Хупин
Подтормаживание может быть связано с драйвером видеокарты, не?
Подтормаживание связано с тем, что он тесты выполняет в потоке UI


я хотел подискутировать
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Начать цикл заново
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]