2 / 2 / 0
Регистрация: 16.02.2012
Сообщений: 12
|
|||||||||||
1 | |||||||||||
Не могу достать данные из потока во время выполнения цикла07.04.2012, 19:56. Показов 1828. Ответов 16
Метки нет (Все метки)
Доброго времени суток.
Проблема вот в чём: есть код формы
Заранее спасибо!
0
|
07.04.2012, 19:56 | |
Ответы с готовыми решениями:
16
Выполнения цикла на заданное время Мьютексы-потоки: Как задать время выполнения потока Перемещение формы во время выполнения цикла Окно программы во время выполнения цикла |
07.04.2012, 20:04 | 2 |
Создай новый проект, воспроизведи в нём эту проблему (ну чтобы без лишнего ненужного кода) и скинь сюда, так будет намного легче тебе помочь. На первый взгляд пока не увидел в чём беда конкретно. Самому проект мутить относительно долго, а так скачал, затестил, попробовал как-то решить, если решил, то тут рассказал в чём проблема. Хотя может кто-то что-то посоветует и поможет без проекта, смотри сам.
Добавлено через 3 минуты А, кстати, скорее всего просто цикл выполняется моментально, вот и не видно никакого продвижения... Запускает
не важно, запускает/выполняет, сама суть что метод, а не процедура или функция. Так, чтобы знал.
0
|
2 / 2 / 0
Регистрация: 16.02.2012
Сообщений: 12
|
|||||||||||
07.04.2012, 20:08 [ТС] | 3 | ||||||||||
Ну смотрим, код формы:
0
|
07.04.2012, 20:11 | 4 |
А значения передаваемые на каждой итерации точно правильно просчитываются?
Добавлено через 1 минуту И вообще лучше вызывать обработчик события не каждую итерацию, а только когда значение процента изменяется, а то походу обращений к контролу просто огромное кол-во (ненужных нафиг).
0
|
2 / 2 / 0
Регистрация: 16.02.2012
Сообщений: 12
|
|
07.04.2012, 20:13 [ТС] | 5 |
Расчитываются правильно, я их и в int конвертировал спецом уже. И цикл этот довольно долгий, файлы по 2-3 метра
Добавлено через 1 минуту Да это-то бог с ним, это не проблема, основная проблема у меня описана в топе
0
|
07.04.2012, 20:15 | 6 |
А вдруг проблема в этом и есть? Была тут какая-то тема, что тормозил интерфейс из-за вот таких же миллионов обращений к прогрес бару. Проверь, возможно в этом и есть проблема.
0
|
2 / 2 / 0
Регистрация: 16.02.2012
Сообщений: 12
|
|
07.04.2012, 20:17 [ТС] | 7 |
Интерфейс тормозить не может, так как все расчеты у меня запущены в другом потоке
Добавлено через 1 минуту Если б тормозил интерфейс, то форма бы не отвечала, а она держится молодцом=)
0
|
07.04.2012, 20:30 | 8 | |||||||||||||||
Что-то там не правильно считается. Точка останова срабатывает 1 раз и значение t == 100
И ещё, если не вызывать метод Progress каждую итерацию, то цикл выполняется моментально, если вызывать, то можно уснуть пока он закончит своё выполнение. Добавлено через 51 секунду Вот сравни и глянь на увеличенное кол-во итераций:
0
|
2 / 2 / 0
Регистрация: 16.02.2012
Сообщений: 12
|
|
07.04.2012, 20:34 [ТС] | 9 |
Этот код и так пашет норм. Или ты хочешь, чтоб я сравнил рабочий и нерабочий примеры?
0
|
07.04.2012, 20:36 | 10 | ||||||||||
Вот держи:
Незнаю что там сравниваешь, но вызывать метод Progress каждую итерацию, это просто говнокод (который ещё и замедляет скорость работы всего цикла).
1
|
2 / 2 / 0
Регистрация: 16.02.2012
Сообщений: 12
|
|
07.04.2012, 20:39 [ТС] | 11 |
Я имею ввиду, что ты перепутал коды! Ты показываешь на примере, где всё работает как надо
Добавлено через 34 секунды В общем, суть ясна, ща я перекурю, всё опробую и отпишусь
0
|
07.04.2012, 20:41 | 12 |
Не работает там как надо, если считать проценты так как ты считал. А если считать так как я считаю в последнем примере, то всё работает. Тебе нужно просто считать также как у меня считается процент и инициировать событие Progress, только при изменении процента, иначе искуственно значительно увеличиваешь время выполнения кода в цикле.
Блин, не понимаю, почему никто не слушает что им говоришь, ладно я бы это сам придумал, ведь дело говорю.
0
|
2 / 2 / 0
Регистрация: 16.02.2012
Сообщений: 12
|
||||||
07.04.2012, 21:07 [ТС] | 13 | |||||
Ну что ж, проблема не решена!
0
|
07.04.2012, 21:11 | 14 | ||||||||||
Проблема помоему как раз решена. Читать внимательнее надо.
1
|
2 / 2 / 0
Регистрация: 16.02.2012
Сообщений: 12
|
||||||
07.04.2012, 21:11 [ТС] | 15 | |||||
на этом примере всё работает отлично
0
|
07.04.2012, 21:14 | 16 |
Я выше показал решение, может ты просто не заметил...
Добавлено через 57 секунд Просто, если делишь целое на целое, то и получаешь целое, а если на вещественное, то получаешь тоже вещественное.
1
|
2 / 2 / 0
Регистрация: 16.02.2012
Сообщений: 12
|
|
07.04.2012, 21:18 [ТС] | 17 |
Хм... да с float'ом всё начало шуршать потихоньку, только не совсем так как надо, он после 1 шага дальше не движется, ну с этим разберемся. А почему с int не работало?
Добавлено через 2 минуты Всё, спасибо большое. Общий смысл ясен. Пошел далее работать=)
0
|
07.04.2012, 21:18 | |
07.04.2012, 21:18 | |
Помогаю со студенческими работами здесь
17
Как задать время выполнения цикла в секундах? Как закрыть программу во время выполнения цикла while Не могу достать нужные данные из Json SIMATIC S7-400. Почему увеличивается время выполнения программного цикла? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |