2013-12-10 4 views
0

Мое приложение основано на последовательной связи. В нем есть главное диалоговое окно, из которого мы можем выбрать три варианта: насос, крип и киоск. Когда я выбираю любой, скажем, насос, тогда вызывается маленький диалог (CommonResponse) с индикатором выполнения и время загрузки насоса из командных файлов. Это маленькое окно находится в отдельном потоке, созданном как рабочий. Теперь я хочу, чтобы это маленькое окно с индикатором выполнения было в основном потоке, но в фоновом режиме последовательная связь должна продолжаться ...... Как это сделать и шаги для этого?Управление индикатором хода ... между двумя диалоговыми окнами

Один из вариантов для этого - это не прогресс, а последовательная связь на отдельной ветке. Но сейчас это очень трудоемкий процесс, потому что все вещи готовы только к этой части, которую мы хотим изменить .... Спасибо, advnce !!!

+0

Насколько я понимаю, что вы хотите окно в рабочем потоке? Плохая идея. За исключением очень, очень редких обстоятельств, которые, похоже, не в вашем случае, все взаимодействия с графическим интерфейсом должны быть в основном потоке. Затем любые рабочие потоки общаются с ним через сообщения, а основной поток обновляет графический интерфейс, например, xMRi говорит в ответ. Проверьте [эту ссылку] (http://www.flounder.com/workerthreads.htm), чтобы узнать, как это сделать, объяснения, почему рабочие потоки не должны касаться графического интерфейса и т. Д. – MikMik

ответ

2

Просто передайте ручку в окно основного потока к фоновому потоку.

Используйте PostMessaage чтобы отправить личное сообщение, которое информирует основную тему о прогрессе. Основной поток может декодировать его и установить встроенный индикатор выполнения в нужное вам значение.

Смежные вопросы