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.