| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Синхронный вывод в textBox |
| Автор: BrookBond 17.11.2013, 13:03 | ||
| Приветствую знатоков! Для доступа из другого класса (который занимается только вычислениями) к объекту textBox я его передаю в конструктор этого класса. А в классе вычислений создаю новый объект textBox. Таким образом класс вычислений получает доступ к объекту другой формы. Но данные появляются в textBox не сразу же как они посчитались и передались в textBox, а только после завершения программы. И иногда появляется ошибка: System.OutOfMemoryException не обработано пользовательским кодом Message=Выдано исключение типа "System.OutOfMemoryException". вот в этом месте
Где-то памяти не хватает. Вопрос в том как сделать, чтобы данные отображались в textBox сразу же как только они вычисляются (синхронно, как в консоли посчитал - вывел)? Может использовать не textBox ? |
| Автор: infarch 20.11.2013, 12:09 |
| Меня вот это удивило: Если текстбокс уже есть то зачем создавать еще один? По поводу обновления информации рискну предположить что все происходит в одном потоке: клик некоего контрола и следом за ним долгое вычисление которое подвешивает приложение. Если так то попробуйте потоки. Для простых решений есть компонент BackgroundWorker. |
| Автор: dzaraev 20.11.2013, 13:01 | ||
Судя по исключению OutOfMemoryException, дело не в потоках, а в памяти. Возможно какая-нибудь рекурсия бесконечная отожрала память в куче раньше, чем в стеке. Или даже без рекурсии, просто загрузил целиком большие файлы. Пока код не покажет, даже не берусь что-то конкретное предполагать. |
| Автор: infarch 20.11.2013, 13:44 | ||
Ну, одно другому не мешает ) В общем, не видя кода приложения ничего сказать нельзя наверняка. Код в студию! |