Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 24628|Ответ: 1

[WinForm] C# task.waitall заморозит интерфейс

[Скопировать ссылку]
Опубликовано 26.06.2017 22:01:09 | | |
Сегодня я написал программу и обнаружил, что интерфейс WinForm застрял и не перестал отвечать,
Однако, кликнув по программе, отражания не появляются, и оно входит в состояние приостановленной анимации.


Потом отладка не была сделана без исключений, в чём проблема?

Поскольку вы написали это предложение в основном потоке, основной поток ждёт выполнения всех задач перед выполнением следующего кода
Я также столкнулся с этой проблемой: при открытии нового дочернего потока в основном потоке, но при ожидании завершения выполнения всех дочерних потоков перед запуском следующего кода основного потока, использование метода ожидания замораживает интерфейс
Увидев комментарии в интернете, я вдруг понял, что написал

Она записана в основном потоке, который ждал завершения всех задач, что приводит к состоянию приостановленной анимации интерфейса

Решение следующее:

Обмотайте нить снаружи Thread — решите!




Предыдущий:Проверка универсальных подписей WebAPI (2)
Следующий:SMS-сервис Alibaba Cloud отправляет промо-сообщения партиями
Опубликовано 01.12.2022 15:02:09 |
Теперь у меня та же проблема: подпоток зависает, когда блокируется task.waitall после запуска.
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com