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

Pohľad: 18422|Odpoveď: 1

[Zdroj] C# sa učí používať vlákna Thread

[Kopírovať odkaz]
Zverejnené 27. 3. 2017 17:32:28 | | |

. .NET framework je runtime knižnica tried pre C#, . .NET je viacvláknové prostredie. Vlákno je jeden sekvenčný riadiaci proces v procese. Vlákno je entita v procese. Proces môže mať viacero vlákien a vlákno musí mať rodičovský proces.

     Vlákna majú zvyčajne tri základné stavy: čítanie, blokovanie a prevádzka. Z troch základných stavov sa odvodí päť základných operácií vlákien. Po prvé, odvodenie, vlákna sú odvodené v rámci procesu. Po druhé, naplánujte a vyberte pripravené vlákno na vstup do stavu operácie. Po tretie, blokovať, ak vlákno potrebuje počkať na udalosť počas vykonávania, bude zablokované. Po štvrté, odblokovať, ak udalosť začne, vlákno sa odblokuje a vstupuje do pripraveného frontu. Po piate, dokončiť, vlákno končí a kontext registra a obsah zásobníka, ktorý vykonalo, sú uvoľnené.

     Nové vlákno je novo vygenerovaný objekt vlákna, ktorý ešte nepridelil zdroje. Preto môžete použiť iba metódy start() alebo close().

     Runable state je, keď vlákno získa potrebné zdroje po spustení metódy start() a zavolá metódu run() na vykonanie.

     Stav Not Runable je stav, ktorý vstupuje, keď nastanú nasledujúce udalosti, zavolá sa metóda suspend(), zavolá sa metóda sleep(), vlákno čaká wait() na čakanie na podmienkovú premennú a vlákno čaká na I/O.

    Mŕtvy nastáva, keď sa metóda Run() vráti, alebo iné vlákno zavolá metódu stop() a vlákno vstúpi do mŕtveho stavu. Nižšie sú uvedené dva jednoduché príklady Threadu.


Zhrnutie: Prečo používať Thread (multi-threading), je to na zabránenie blokovania hlavného vlákna, ak potrebujete spracovať veľké množstvo dát alebo zavolať časovo náročnú metódu, musíme použiť viacvláknové vlákno.

Príklad:


Nepoužívanie multithreadingu: Rozhranie nereaguje... Je to preto, že multithreading sa nepoužíva




Predchádzajúci:Kto je realitný boss Wu Xuezhan stojaci za prípadom "urážky matky"?
Budúci:BundleTable nenačítava súbory js a css pomocou minimum
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