Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Синхронный вывод в textBox, Вывод данных задерживается до завершения 
:(
    Опции темы
BrookBond
Дата 17.11.2013, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Возможно все.....



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 9.6.2012
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Приветствую знатоков!

Для доступа из другого класса (который занимается только вычислениями) к объекту textBox я его передаю в конструктор этого класса. А в классе вычислений создаю новый объект textBox. Таким образом класс вычислений получает доступ к объекту другой формы. 
Но данные появляются в textBox не сразу же как они посчитались и передались в textBox, а только после завершения программы. И иногда появляется ошибка:
System.OutOfMemoryException не обработано пользовательским кодом
Message=Выдано исключение типа "System.OutOfMemoryException".
вот в этом месте

Код

textPeresech.Text += String.Format("{0}    {1}     {2:0.00}     {3:0.00}    {4}     {5}    {6}\n", 
           i, j, Obmen[j].x, Obmen[j].y, Obmen[j].n, Obmen[j].X0, Obmen[j].X1);

Где-то памяти не хватает.
Вопрос в том как сделать, чтобы данные отображались в textBox сразу же как только они вычисляются (синхронно, как в консоли посчитал - вывел)? 
Может использовать не textBox ?
PM MAIL WWW   Вверх
dzaraev
Дата 19.11.2013, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 12.1.2013

Репутация: нет
Всего: 1



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

Цитата(BrookBond @  17.11.2013,  13:03 Найти цитируемый пост)
Но данные появляются в textBox не сразу же как они посчитались и передались в textBox, а только после завершения программы. 

Здесь мой мозг вообще остановился.
--------------------
Если вопрос решён - помечайте тему.  
PM MAIL   Вверх
infarch
Дата 20.11.2013, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

Репутация: 1
Всего: 1



Меня вот это удивило:
Цитата(BrookBond @  17.11.2013,  13:03 Найти цитируемый пост)
А в классе вычислений создаю новый объект textBox

Если текстбокс уже есть то зачем создавать еще один?
По поводу обновления информации рискну предположить что все происходит в одном потоке: клик некоего контрола и следом за ним долгое вычисление которое подвешивает приложение. Если так то попробуйте потоки. Для простых решений есть компонент BackgroundWorker.
PM MAIL   Вверх
dzaraev
Дата 20.11.2013, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 12.1.2013

Репутация: нет
Всего: 1



Цитата(infarch @  20.11.2013,  12:09 Найти цитируемый пост)
По поводу обновления информации рискну предположить что все происходит в одном потоке: клик некоего контрола и следом за ним долгое вычисление которое подвешивает приложение.

Судя по исключению OutOfMemoryException, дело не в потоках, а в памяти. Возможно какая-нибудь рекурсия бесконечная отожрала память в куче раньше, чем в стеке. Или даже без рекурсии, просто загрузил целиком большие файлы. Пока код не покажет, даже не берусь что-то конкретное предполагать.
--------------------
Если вопрос решён - помечайте тему.  
PM MAIL   Вверх
infarch
Дата 20.11.2013, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

Репутация: 1
Всего: 1



Цитата(dzaraev @  20.11.2013,  13:01 Найти цитируемый пост)
Судя по исключению OutOfMemoryException, дело не в потоках, а в памяти

Ну, одно другому не мешает ) В общем, не видя кода приложения ничего сказать нельзя наверняка. Код в студию!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0414 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.