Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 24628|Odpoveď: 1

[WinForm] C# task.waitall zamrazí rozhranie

[Kopírovať odkaz]
Zverejnené 26. 6. 2017 22:01:09 | | |
Dnes som napísal program a zistil som, že rozhranie Winform je zaseknuté a nie nereaguje,
Avšak kliknutím na softvér nie je žiadny odraz a prešiel do stavu pozastavenej animácie.


Potom ladenie, žiadne výnimky neboli vyhodené, aký je problém?

Keďže ste túto vetu napísali v hlavnom vlákne, hlavné vlákno čaká na vykonanie všetkých úloh pred spustením nasledujúceho kódu
Aj ja som sa stretol s týmto problémom, keď som otvoril nové podvlákno v hlavnom vlákne, ale počkal, kým všetky podvlákna dokončia spustenie pred spustením ďalšieho kódu hlavného vlákna, pričom metóda čakania zamrzne rozhranie
Keď som videl komentáre na internete, zrazu som si uvedomil, že som dal

Je napísaný v hlavnom vlákne, ktoré čaká na ukončenie všetkých úloh, čo spôsobí, že rozhranie vstúpi do stavu pozastavenej animácie

Riešenie je nasledovné:

Uzavri vlákno mimo vlákna, vyrieš to!




Predchádzajúci:Overenie WebAPI univerzálnych podpisov (2)
Budúci:Alibaba Cloud SMS služba posiela propagačné SMS správy v dávkach
Zverejnené 1. 12. 2022 15:02:09 |
Teraz mám rovnaký problém, podvlákno sa zasekne, keď sa po spustení zablokuje s task.waitall.
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com