![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| MasterOfCode |
|
|||
|
elwin ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 24.4.2008 Где: World.Russia.Tyum en Репутация: 4 Всего: 27 |
ComboBox который создается динамически, у него есть процедура
Бывает такое что в таблице тысячи записей, и при выполнении данной операции форма подвисает. Я бы хотел вынести в отдельный поток, там заполнять List<string> и автоматически на прогрессбар выводить, но не приложу ума как это сделать? -------------------- ![]() |
|||
|
||||
| Bogdan1024 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1436 Регистрация: 28.9.2005 Где: Киев Репутация: 5 Всего: 13 |
Ну, в ComboBox_SelectedIndexChanged запустить поток, а когда он закончится сделать lb.DataSource = list. Юзать метод Invoke у контролов чтобы получить доступ к их методам из других потоков.
-------------------- ![]() |
|||
|
||||
| MasterOfCode |
|
|||
|
elwin ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 24.4.2008 Где: World.Russia.Tyum en Репутация: 4 Всего: 27 |
Как проверить что поток завершил работу? -------------------- ![]() |
|||
|
||||
| DVariuS |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 10.2.2009 Где: Ukraine Репутация: 5 Всего: 8 |
||||
|
||||
| MasterOfCode |
|
|||
|
elwin ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 24.4.2008 Где: World.Russia.Tyum en Репутация: 4 Всего: 27 |
Юзал, не понравился он мне =) -------------------- ![]() |
|||
|
||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 18 Всего: 67 |
MasterOfCode, сразу говори чем =)
-------------------- СУВ, Partizan. |
|||
|
||||
| MasterOfCode |
|
|||
|
elwin ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 24.4.2008 Где: World.Russia.Tyum en Репутация: 4 Всего: 27 |
мне показалось неудобно работать с ним. компоненту на форму бросать. Попробовал через Thread, сравнил, выбрал второе =) Помогите разобраться, может кто сталкивался:
ситуация такая, все работает так как мне нужно, но есть проблема, поскольку контролы созданы динамически, то если я на соседнем комбобоксе изменю индекс, то запускается процесс и он автоматически меняет глобальные листбокс и прогрсбар. и соответственно процедуры SetListBoxDataSource, SetProgress начинают менять состояние других объектов, как бы так извратится, чтоб каждый поток свой прогрессбар менял? -------------------- ![]() |
|||
|
||||
| Conkistador |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 3.6.2009 Репутация: 2 Всего: 2 |
||||
|
||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 18 Всего: 67 |
MasterOfCode, да BW на самом деле гораздо удобнее...
кидание компонента из тулбокса на форму - совсем не обязательное условие...можно точно также создать объект BackgroundWorker из кода... всё что нужно - подписаться на событие DoWork и в обработчик поместить тот код, который должен выполняться в фоновом потоке. Ещё нужно подписаться на ProgressChanged, в обработчике которого и апдейтить контролы(когда в обработчике DoWork вызываешь ReportProgress, возникает ProgressChanged). Ну и последним шагом надо просто запустить выполнение фоновой задачи вызовом метода RunWorkerAsync(); -------------------- СУВ, Partizan. |
|||
|
||||
| MasterOfCode |
|
|||
|
elwin ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 24.4.2008 Где: World.Russia.Tyum en Репутация: 4 Всего: 27 |
Partizan, как все просто =) Ладно, использую и ту и эту технологии, работы еще много.
-------------------- ![]() |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |