powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Контролы становятся черными на пару секунд
14 сообщений из 14, страница 1 из 1
Контролы становятся черными на пару секунд
    #38564828
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как бороться с такой проблемой:

есть форма, в ней выполняется длинная операция по удалению файлов в backgroundworker, по ходу удаления через вызов
bw.ReportProgress вкидывается имя каждого файла в невидимый текстбокс на форме.

В конце потока этому текстбоксу делается textBox1.Visible=true;

В этот момент есть два варианта поведения для большого количества файлов:

1. текстбокс показывается нормально - обычно на компьютере с приличной памятью
2. все замирает, текстбокс начинает показываться, становится черным на 2-3 секунды, затем все показывается

Как бороться со случаем 2?
...
Рейтинг: 0 / 0
Контролы становятся черными на пару секунд
    #38565015
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WinnipuhКак бороться со случаем 2?
использовать Invoke
...
Рейтинг: 0 / 0
Контролы становятся черными на пару секунд
    #38565025
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приблизительно так сделано:
Сначала был лист строк, потом изменил на StringBuilder, но особого улучшения не заметил на большом количестве строк (>10000)
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
//1. 
private List<string> m_listReport;
private StringBuilder sb;
//...
backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
...
// m_listReport.Add(strText);
 sb.AppendLine(strText);

}


//2. 
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
...
// Было так, 
//textBoxReport.Text = string.Join(Environment.NewLine, m_listReport.ToArray());

textBoxReport.Text = sb.ToString();

}



Но на завершении даже на хорошем компьютере видны тормоза после изменения размеров окна и перед отрисовкой текстобкса
...
Рейтинг: 0 / 0
Контролы становятся черными на пару секунд
    #38565030
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuh,

а текст сильно большой?
...
Рейтинг: 0 / 0
Контролы становятся черными на пару секунд
    #38565045
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuh,

Начать использовать WPF.
в нем с прорисовкой тормозов нет. DirectX все таки....
...
Рейтинг: 0 / 0
Контролы становятся черными на пару секунд
    #38565047
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationWinnipuh,

а текст сильно большой?

на больших текстах это и проявляется, т.е. когда строк >20000.
...
Рейтинг: 0 / 0
Контролы становятся черными на пару секунд
    #38565049
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D129Winnipuh,

Начать использовать WPF.
в нем с прорисовкой тормозов нет. DirectX все таки....

да, не спорю, но существующее приложение со своей логикой.... там если переделывать, то по большому счёту, но не сегодня
...
Рейтинг: 0 / 0
Контролы становятся черными на пару секунд
    #38565165
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuh,

вместо TextBox использовать RichTextBox.
...
Рейтинг: 0 / 0
Контролы становятся черными на пару секунд
    #38565787
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuh,

вместо StringBuilder использовать TextBox.AppendText
...
Рейтинг: 0 / 0
Контролы становятся черными на пару секунд
    #38565854
vindofs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pation,

хм... инетересно, а зачем вообще в интерфейс такую сучу строк выводить...
...
Рейтинг: 0 / 0
Контролы становятся черными на пару секунд
    #38565889
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vindofspation,

хм... инетересно, а зачем вообще в интерфейс такую сучу строк выводить...

это интересный, но другой вопрос ;-)
так бывает редко, но есть двинутые юзеры, которым хочется. Кроме того, то, что нормально отрабатывает у меня на компьтере - работает с проблемой, описанной выше на дохлом компьютере у юзера и т.д..

Ну и самое главное: извечная тяга к знаниям
...
Рейтинг: 0 / 0
Контролы становятся черными на пару секунд
    #38565978
vindofs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuhvindofspation,

хм... инетересно, а зачем вообще в интерфейс такую сучу строк выводить...

это интересный, но другой вопрос ;-)
так бывает редко, но есть двинутые юзеры, которым хочется. Кроме того, то, что нормально отрабатывает у меня на компьтере - работает с проблемой, описанной выше на дохлом компьютере у юзера и т.д..

Ну и самое главное: извечная тяга к знаниям

Дружище, а может порциями в контрол выводить? Ну там по 200 строк
...
Рейтинг: 0 / 0
Контролы становятся черными на пару секунд
    #38566173
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vindofsWinnipuhпропущено...


это интересный, но другой вопрос ;-)
так бывает редко, но есть двинутые юзеры, которым хочется. Кроме того, то, что нормально отрабатывает у меня на компьтере - работает с проблемой, описанной выше на дохлом компьютере у юзера и т.д..

Ну и самое главное: извечная тяга к знаниям

Дружище, а может порциями в контрол выводить? Ну там по 200 строк

можно, но если подкидывать порциями в текст бокс по ходу выполнения тогда форма подмерзает, а там кнопка типа Cancel, юзер не всегда может попасть в неё...
Сейчас делаю эксперимент, отпишусь скоро...
...
Рейтинг: 0 / 0
Контролы становятся черными на пару секунд
    #38566202
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо всем за участие.

решил, грузит быстро даже по 5-10 мб текст.
вывел свой класс из RichTextBox, в нем гружу "RICHEDIT50W" вместо дефолтного.
Это то, что MS использует в вордпаде и т.д..
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Контролы становятся черными на пару секунд
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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