![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| neiron |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 18.4.2006 Где: Краснодар Репутация: нет Всего: 4 |
Необходимо отобразить прогресс выполнения операции.
Есть форма на wpf, есть библиотека, которая делает необходимые вещи (обрабатывает картинки). Обработка длится долго. При этом обработка данных строится по следующему принципу: создаётся класс Загрузчик из той библиотеки. Он создаёт несколько классов-"Коллекций" изображений, каждая из которых затем выполняет необходимые действия над группой изображений. На форме мне необходимо вывести прогресс обработки - сколько сделано, сколько осталось. Что посоветуете? У меня какая-то непонятная мысль о привязке копошится в голове. Но, как я понимаю, нужно чтобы Коллекции сообщали Загрузчику о ходе работы, а тот уже предоставлял информацию для морды. Да, видимо сам загрузчик должен будет работать в другом потоке, ибо фейс желательно немного юзабельным оставить. Итого: надо протолкнуть внутренние данные из одного потока в другой (WPF) в режиме реального времени. Как-то так. Конечно, хочется как можно проще и быстрее)) PS. Анимашку не предлагать. Она и так сейчас стоит) |
|||
|
||||
| Ruzl |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 9.2.2008 Репутация: 1 Всего: 1 |
Можно создать интерфейс (например IProgressCallBack) в котором объявить 2 метода ProgressChange и ProgressComplit. Пронаследовать от него свою форму.
Получиться что-то типа :
Затем создать поток :
Объявляем делегаты:
Затем в самой процедуре SomeMthod:
mainForm - это объект класса формы |
||||||||
|
|||||||||
| neiron |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 18.4.2006 Где: Краснодар Репутация: нет Всего: 4 |
Угу, спасибо. Это всё было понятно.
Я не мог додуматься лишь до одной мелочи - отнаследовать от исполняющего класса. Ибо сам этот класс в своей библиотеке о форме ничего не должен был знать. Утро, как обычно, оказалось вечера мудренее) Лови плюс) |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [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. |