Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 24628|Отговор: 1

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

[Копирай линк]
Публикувано в 26.06.2017 г. 22:01:09 ч. | | |
Днес написах програма и установих, че интерфейсът на WinForm е заседнал и не е неотзивчив,
Въпреки това, когато кликна върху софтуера, няма никакво отражение и той е влязъл в състояние на суспендирана анимация.


След това, дебъгване, без изключения, какъв е проблемът?

Тъй като сте написали това изречение в основната нишка, това кара основната нишка да изчака всички задачи да бъдат изпълнени, преди да изпълни следващия код
И аз се сблъсках с този проблем – отварях нова дъщерна нишка в основната нишка, но чакането всички дъщерни нишки да завършат изпълнението преди да стартирам следващия код на основната нишка, използването на метода за чакане замразява интерфейса
Като видях коментарите в интернет, изведнъж осъзнах и написах

Той е написан в основната нишка, която е чакала всички задачи да приключат, което води до влизане на интерфейса в състояние на суспендирана анимация

Решението е следното:

Увие конец извън Thread, реши!




Предишен:Проверка на универсалните подписи на WebAPI (2)
Следващ:Alibaba Cloud SMS Service изпраща промоционални SMS съобщения на партиди
Публикувано в 1.12.2022 г. 15:02:09 ч. |
Сега имам същия проблем – поднишката се засяда, когато блокира с task.waitall след стартиране.
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com