|
Интересное поведение приложения.
|
|||
---|---|---|---|
#18+
Добрый день Столкнулся с непонятной ситуацией Есть собственное написанное приложение Net Core5 WPF Параллельно запускаю в другой программе не .NET, например выгрузку базы сохранение на диск. И в этот момент мое приложение как будто ловит мороз никакие команды в интерфейсе не реагируют до тех пор, пока в параллельном приложении не закончится выгрузка после все мои нажатии в быстром порядке начинают отрабатывать. Ладно бы если весь компьютер подвисал, но другие программы прекрасно работают в этот момент. Подскажите в какую сторону посмотреть, даже не знаю как правильно запрос в поиск оформить все что выдает это именно зависание в самом приложении при каких-то длительных операциях, а у меня получается влияют сторонние приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2021, 09:39 |
|
Интересное поведение приложения.
|
|||
---|---|---|---|
#18+
ZenForever, скорее всего, ты запускаешь внешнюю программу синхронно и ожидаешь её завершения. в этот момент основной поток, который отвечает за перерисовку и обработку ввода в твоем wpf приложении занят тем, что ждет, когда Process завершится и ничего больше не делает. я обычно оборачиваю запуск Process в Async операцию, для этого даже не нужно городить потоки. Просто создай TaskCompletionSource<int> или с более сложный подтипом, а в событии Process.Exit, задай ему результат выполнения процесса. Это будет сигналом для Awaiter'а, что ждать больше не нужно. А затем вызови это асинхронно. Всё должно отлично работать. Но тебе надо будет в WPF интерфейсе (возможно) сделать доработки, в плане состояния объектов. если сам не умеешь, просто погугли про Process.RunAsync\Process.StartAsync, наверняка уже написано 100500 раз, задача тривиальная. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2021, 13:19 |
|
Интересное поведение приложения.
|
|||
---|---|---|---|
#18+
Roman Mejtes, Немного не поняли меня, внешнюю программу я запускаю не из своего приложения, а просто отдельно То есть мое приложение и некая программа никак между собой не связанны вообще Если простым примером Например открыл Word печатаю текст переключился например на MS SQL Studio запустил выполнение архива базы пока архив выполняется например 3 минуты переключился в Word и ничего напечатать не могу окно как буд- то в заморозке и вот MS SQL Studio закончило выгрузку в Worde Все что набирал начинает быстро появляется Вот мое приложение условно как Word в заморозке Хотя если открыть в этот момент Блокнот или другой текстовый редактор то все прекрасно набирается. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2021, 14:04 |
|
Интересное поведение приложения.
|
|||
---|---|---|---|
#18+
возможно какие то mutex'ы или semaphore'ы? возможно запускаемый процесс переключает приоритет режима реального времени, остальные программы не тормозят при этом? как вариант: в вашей программе WPF где то выполняется в цикле запрос в базу, а программа которую вы запускаете, открывает транзакцию на длительное время и программа WPF зависает. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2021, 14:08 |
|
|
start [/forum/topic.php?fid=21&gotonew=1&tid=1440234]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 275ms |
total: | 416ms |
0 / 0 |