. A .NET keretrendszer egy futási idejű osztálykönyvtár C#, . A .NET egy többszálas környezet. A szál egy egyetlen egymást követő vezérlőfolyamat, amely egy folyamatban van. A szál egy folyamatban lévő entitás. Egy folyamatnak több szála lehet, és egy szálnak is van egy szülő folyamata.
A szálak általában három alapvető állapotból állnak: olvasás, blokkolás és működés. A három alapállapotból öt szál alapművelet következik ki. Először is, a menetmenet egy folyamaton belül származik. Másodszor, ütemezz, válassz egy kész szálat, hogy belépj az operációs állapotba. Harmadszor, blokkolja, ha egy szálnak várnia kell egy eseményre a végrehajtás során, akkor blokkolják. Negyedszer, a blokkolás feloldása, ha az esemény elindul, a szál feloldódik, és belép a kész sorba. Ötödszer, a befejezés, a szál véget ér, és a regiszter kontextusa és a futtatott stack tartalma felszabadul.
Az új szál egy újonnan generált szálobjektum, amely még nem osztott fel erőforrásokat. Ezért csak a start() vagy close() metódusokat használhatod.
A futtatható állapot akkor van, amikor a szál megkapja a szálhoz szükséges erőforrásokat a start() metódus futtatása után, és a run() metódus végrehajtására hívja.
A Nem futható állapot egy olyan állapot, amely akkor lép be, amikor a következő események megtörténnek, a suspend() metódus meghívása, a sleep() metódus hívása, a szál a wait() gombot használja a feltételváltozó megvárásához, és a szál az I/O-ra vár.
A halott, amikor a Run() metódus visszatér, vagy egy másik szál hívja a stop() metódust, és a szál belép a halott állapotba. Az alábbiakban két egyszerű példa a Thread-re.
Összefoglaló: Miért használjuk a Thread-et (multi-threading), ez azért van, hogy megakadályozzuk a fő szál blokkolását; ha nagy mennyiségű adatot kell feldolgoznod, vagy időigényes módszert kell hívnod, akkor a Thread multi-threadinget kell használnunk.
Példa:
Nem használok többszálas kezelést: Az interfész nem reagál... Azért, mert a multithreading nem használatos
|