0 / 0 / 0
Регистрация: 02.12.2013
Сообщений: 2
1

В момент вычислений форма подвисает и не выводит промежуточный результат в Label

02.12.2013, 02:38. Показов 1259. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Программа производит большое количество вычислений, и периодически необходимо отображать результаты в форме. Использую label, но программа как бы подвисает из-за большой загрузки и данные не обновляются. Только в самом конце, когда все вычисления произведены.
Как сделать, чтобы label обновлялся вовремя?

Добавлено через 8 минут
Ошибся - не listbox, а label.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.12.2013, 02:38
Ответы с готовыми решениями:

Программа не выводит результат вычислений
Доброе время суток ребят. Скажите в чем моя ошибка, не выводит результат import java.util.Scanner;...

Указать результат каких вычислений выводит на печать программа
Sub example() Const n = 5 Dim x() As Integer, i As Integer ReDim x(1 To n) For i = 1 To n ...

Программа не выводит результат мат-х вычислений, ошибок не выдает
Сами вычисления правильные, проверял в оконном варианте приложения. Проблема в том, что не...

Промежуточный результат
Помогите с выводом промежуточных результатов роботы програмы в Label6 void __fastcall...

2
158 / 187 / 48
Регистрация: 25.11.2013
Сообщений: 978
02.12.2013, 03:28 2
Лучший ответ Сообщение было отмечено progeon как решение

Решение

Best practice - не использовать для работы программы UI thread, если следовать этому принципу, твоя задача не имеет проблемы, запускай долгоиграющие операции в другом потоке и обновляй UI делегатами, например так:
C#
1
new Tread(myLongTask).Start();
C#
1
2
3
4
5
6
7
8
9
10
void myLongTask()
{ //Long calculations
UpdateMyLabel(50%);
//Long calculations
}
void UpdateMyLabel(string value)
{
Action ul = () => myLabel.Text = value;
BeginInvoke(ul);
}
2
0 / 0 / 0
Регистрация: 02.12.2013
Сообщений: 2
01.02.2014, 14:22  [ТС] 3
Спасибо, получилось. Единственное добавил строчку:

using System.Threading;

и при очень частом обновлении данных, если вычислений мало, после

3 UpdateMyLabel(50%);

можно добавить:

4 System.Threading.Thread.Sleep(5);
0
01.02.2014, 14:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.02.2014, 14:22
Помогаю со студенческими работами здесь

Не запоминает промежуточный результат
Калькулятор не запоминает промежуточный результат (2+2+2=4) var Form1: TForm1; ...

Добавить промежуточный результат в калькулятор
Задание обычное:сделать калькулятор с простыми действиями.Для меня сложность состоит в том что бы...

Где хранить промежуточный результат?
как сделать при нажатии кнопки чтобы значение счетчика инкрементировалось? где хранить...

Отсортировать массив через промежуточный и записать результат в конечный
Добрый вечер! Задан одномерный массив целых чисел А (возможно, повторяющихся). Рассортировать...

Возникли трудности с разработкой программы. Нужно вывести промежуточный результат
Добрый день. Возникли трудности с разработкой программы. Нужно вывести промежуточный результат...

Подвисает на пару секунд ПК в определённый момент
Проблема такая: Когда включен стрим на твиче и играю в heartstone, то во время игры может повиснуть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru