|
0 / 0 / 0
Регистрация: 14.04.2015
Сообщений: 14
|
|||||||||||||||||||||
Получение в реальном времени возврата от консольного приложения с использованием WaitForExit();28.07.2016, 11:09. Показов 2328. Ответов 4
Метки нет (Все метки)
Вроде и тема уже изъезженная и вдоль и поперек, но что то не могу дать ладу уже два вечера.
Есть функция:
create() в свою очередь вызывается функцией:
Не понятно почему вообще textBox1 заполяняется в конце цикла, а не после каждого запуска wimlib()? Если убрать (для отладки) wlib.WaitForExit(); обратку получаю в реалтайме в виде какого то перемешанного бреда сразу от нескольких потоков. Само собой функция как полагается не работает, т.к. каждый вызов wimlib() должен происходить после завершения предыдущего вызова. Тема достаточно истоптана вроде, но из всего найденного в гугле оно либо не работает, либо не разобрался как это применить. Буду искренне благодарен за заведомо рабочий пример, который будет возвращать "обратку" построчно в реальном времени и что бы форма не "тупила" (весьма желательно, т.к. во время она хоть и не зависает совсем (progressBar заполняется), но окно нельзя переместить на рабочем столе и оно явно тормозит) пока происходит отработка функции wimlib().
0
|
|||||||||||||||||||||
| 28.07.2016, 11:09 | |
|
Ответы с готовыми решениями:
4
Перехват вывода консольного приложения в реальном времени
Получение сообщений и т.п. в реальном времени |
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 28.07.2016, 11:43 | ||
Сообщение было отмечено Adler_lug как решение
РешениеВ методе wimlib вы пытаетесь добавить текст в поле, что должно выполниться в основном потоке. Который заблокирован методом wimlib. Исправить можно двумя простыми способами: 1. Выполнять цикл в отдельном потоке. 2. Переписать код под асинхронную модель Первый вариант проще — достаточно вынести код цикла в BackgroundWorker.
1
|
||
|
0 / 0 / 0
Регистрация: 14.04.2015
Сообщений: 14
|
||||||
| 28.07.2016, 14:50 [ТС] | ||||||
|
kolorotur,
![]() Досконально не тестировал, т.к. рабочее корыто уходит в ступок при работе wimlib-imagex.exe, но поместив содержимое create() в BackgroundWorker1DoWork() (create() удалил) и заменив вызов create() на backgroundWorker1.RunWorkerAsync() увидел при запуске в textBox1 активно бегущие строчки... Добавлено через 27 минут Только вот теперь перестал работать progressBar. Я предварительно перенес это
А как теперь заставить что бы progressBar работал (т.е. он должен двигаться на 1 после каждого вызова wimlib() из функции BackgroundWorker1DoWork())?
0
|
||||||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 28.07.2016, 15:11 | ||
|
Предварительно установите свойство WorkerReportsProgress на true и подпишитесь на событие ProgressChanged. Всё это можно сделать в дизайнере, если вы добавили воркера через него. В методе DoWork замените progressBar1.PerformStep() на backgroundWorker1.ReportProgress. А в обработчик события ProgressChanged добавьте progressBar1.PerformStep().
0
|
||
|
0 / 0 / 0
Регистрация: 14.04.2015
Сообщений: 14
|
|
| 28.07.2016, 22:04 [ТС] | |
|
kolorotur, а можно в коде, а то что то не особо понял?
![]() ![]() Добавлено через 6 часов 3 минуты kolorotur, разобрался. Спасибо.
0
|
|
| 28.07.2016, 22:04 | |
|
Помогаю со студенческими работами здесь
5
sockets - получение данных в реальном времени? Получение содержимого Не своего сайта в реальном времени Получение карты глубины из Z буфера в реальном времени Получение данных из консольного приложения
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|