Bevezetés a többszálas
Az egyik legfontosabb szempont a modern programozási multi-threading. A rendszer segítségével a multi-threading, tudjuk azonosítani néhány áramok alkalmazás, amely különböző feladatokat egyszerre. Ha van, mondjuk, egy grafikus alkalmazás, amely egy kérést küld minden szerveren, vagy elolvassa és feldolgozza egy hatalmas fájlt, anélkül menetvágó letiltotta a grafikus felület idejére a feladat. És hála a patakok, azonosítani tudjuk a küldő kérésére, vagy bármely más feladat, hogy lehet feldolgozni sokáig, egy külön téma. Ezért, például kliens-szerver alkalmazások (és csak azokat) gyakorlatilag elképzelhető menet nélküli.
A fő funkciók az alkalmazás áramlások koncentrálódik a System.Threading névtérben. Ez határozza meg egy osztályt, ami egy külön téma - Thread osztály.
Menet osztály definiál egy sor módszerek és tulajdonságok, amelyek lehetővé teszik, hogy ellenőrizzék az áramlás, és kap információt róla. Az alapvető tulajdonságait osztály:
Statikus CurrentContext ingatlan rendelkezik egy olyan környezetben, amely a szál végrehajtó
CurrentThread statikus tulajdonság visszaadja utalás a futó szál
IsAlive tulajdonság meghatározza, hogy az éppen futó patak
IsBackground tulajdonság jelzi, hogy a háttérben téma
A neve tulajdonság nevét tartalmazza a patak
Prioritás ingatlan tartja a szál prioritása - az értéke felsorolás ThreadPriority
ThreadState tulajdonság visszaadja a szál állapota - az egyik felsorolás értékek ThreadState
Néhány szál osztály módszerek:
GetDomain statikus módszer visszaadja a hivatkozás az alkalmazási területen
GetDomainId statikus módszer azonosítóját adja vissza az alkalmazási terület, ahol az áram
Statikus módszer Sleep leállítja az áramlást egy bizonyos ezredmásodperc
Megszakítás eljárás értesíti a CLR, hogy szükség van, hogy hagyja abba az áramlás, de a megszüntetését az áramlás a munka folyik egyszerre, de csak akkor, ha ez lehetséges lesz. Annak ellenőrzésére, teljességének áramlás kell kihallgatni tulajdona ThreadState
Interrupt módszer megszakítja az áramlás egy ideig
Csatlakozz eljárás blokkok végrehajtása a hívó szálat, amíg befejezéséig a patak, melyek ezt a módszert hivatkoztak
Folytatás eljárás folytatódik a korábban felfüggesztett menet
Start metódus elindítja az áramlás
Suspend eljárás felfüggeszti a menet
Első információt patak
A fent leírt tulajdonságok és módszerek vonatkozó információk megszerzésére adatfolyam:
Ebben az esetben mi kap valamit, mint az alábbi következtetést:
Mivel az alapértelmezett neve tulajdona szál objektum nem található az első esetben azt kapjuk, mint az értéke ez a tulajdonság egy üres karakterlánc.
flow állapotát
áramlási állapotok szerepelnek a lista ThreadState:
Megszakítva. Az áramlás megállt, de még nem teljesen kész
AbortRequested. flow módszer az úgynevezett megszakítás, de megáll az áramlás még nem fordult elő
Háttér. patak a háttérben
Futás. patak és fut (nem állítjuk)
Megállt. takarmány befejeződött
StopRequested. Takarmány arra kérték, hogy hagyja abba
Függeszteni. menet van függesztve
SuspendRequested. Takarmány iránti kérelem érkezett felfüggesztés
Megkezdés. Takarmány még nem kezdődött
WaitSleepJoin. áramlás miatt zároltak az intézkedések vagy módszerek alvás be
A működés során az áramlás változhat az állapota az intézkedés alapján több módszer. Így az elején, mielőtt a módszer alkalmazásához Kezdés ő állapota Megkezdés. Futó patak, akkor módosíthatja az állapotát futás. Hívja a módszer Sleep, az állapot megváltozik WaitSleepJoin. A módszer alkalmazása megszakítás, mi így lefordítani állapotban áramlási AbortRequested, majd megszakadt, majd a patak végül elkészült.
menet prioritások
A prioritások adatfolyam vannak elrendezve a lista ThreadPriority:
Az alapértelmezett beállítás a Normál áramlását. Azonban, meg tudjuk változtatni a prioritást a munkaprogramot. Például, növeli a jelentőségét az áramlás beállításával az elsődleges legmagasabb. CLR környezet fogja olvasni és elemezni a prioritási értéket annak alapján, és ez az áramlás kiosztani egy bizonyos ideig.