Stream létrehozása

A C # kódfuttatása a fő módszerrel kezdődik. A fő módszer az alkalmazás fő fonalát képezi. A stream a programban végrehajtott műveletek sorrendje. A fő téma több alárendelt futtathat vagy mondhat munkameneteket. Minden szálon végrehajt egy vagy másik függvényt. Azt mondják, hogy ebben az esetben a program párhuzamos, vagyis pár szálon fut, amely párhuzamosan fut. Tény, hogy az esetekben ?? e soros számítógép teljesen ?? e szála kis lehetőségek egymás után, ami miatt a felhasználó az illúziót kelti a párhuzamos működés. Valós idejű nyereség csak akkor érhető el, ha a szálak különböző számítógépes hardverforrásokat és / vagy többprocesszoros gépeket használnak.

Egy többszálas rendszer be van ágyazva a Téma osztályba. Ez az osztály zárt osztályként deklarálható, azaz nem hozhat létre új osztályt. A Thread osztály számos tulajdonságot és módot határoz meg a szálak kezelésére.

Fontos megjegyezni, hogy egy téma létrehozása rendkívül fontos Thread-objektum létrehozásához.

Ennek az osztálynak az egyik építője a következő formában van:

nyilvános szál (ThreadStart start)

A ThreadStart típus a System.Threading névtérben szerepel a delegált kulcsszóval, és a következő aláírással rendelkezik:

nyilvános delegált érvénytelen ThreadStart ();

Legyen például egy streaming funkció fejléce - void funcThread (), majd a start objektum létrehozása:

ThreadStart start = új ThreadStart (funcThread);

A ThreadStart konstruktor létrehozza az objektum létrehozásakor a szálon végrehajtandó függvény nevét.

A következő lépés rendkívül fontos, hogy létrehozzon egy szál objektumot, és paraméterként adja meg a startobjektumot a Szál konstruktorhoz:

Téma = új téma (indítás);

Egy streaming objektum létrehozása után rendkívül fontos, hogy a threading függvényt futtassa a végrehajtáshoz a Start módszer használatával a thrd használatával:

A témacím egy nevet rendelhet a Name tulajdonság segítségével:

strig nm = thrd.Name;

A stream aktívnak tekinthető, függetlenül attól, hogy leállt-e, vagy sem, amíg a benne futó függvény be nem fejeződik. Az adatfolyam funkció befejezése után az adatfolyam megsemmisül. Ez a megszüntetés normális. Annak megállapításához, hogy egy téma aktív-e vagy sem, használhatja az IsAlive tulajdonságot, amely csak olvasható. A tulajdonság igaz, ha a szál aktív és hamis (hamis), ha nem. Ez a tulajdonság használható az áramlás végének meghatározására. Az áramlás bizonyos ideig történő felfüggesztéséhez használhatja a statikus módszert:

nyilvános statikus üres alvás (int idő)

ahol az időparaméter megadja az időt milliszekundumban.

Az anyag megszilárdításához vegyen egy példát az anyag bemutatására:

Console.WriteLine ("A fő téma befejeződött");

Ez az alkalmazás deklarálja a MyThread osztályt. A MyThread osztály konstruktor létrehoz egy stream objektumot egy kódsor használatával:

thrd = új téma (új ThreadStart (this.FnThr));

Ezután streaming objektum a nevét, ĸᴏᴛᴏᴩᴏᴇ kivitelező veszi, mint a paraméter, és elindul a módszer a Start () áramot vezet a hívás streaming módszer FnThr ().

A FnThr () metódus hurok, amely „találja” 0-tól 4 Mielőtt a hurok módszer nyomatokat a konzol indult a patak nevét, majd a végén a ciklus - a nevét a patak befejezte munkáját. Metódushívás Sleep (), a szervezet ?? e FnThr () metódus a ciklus miatt a patak, ahonnan hívták szerinti felfüggesztésére irányuló meghatározott ideig milliszekundum.

A Main () metódusban az alábbi utasítások öt tárgyat hoznak létre a Téma osztályban:

// Hozzon létre egy sor referenciát a stream objektumokhoz

MyThread [] mt = új MyThread [5];

// A MyThread osztály objektumainak létrehozása.

az (int j = 0; j

mt [j] = új MyThread ("Descendant #" + j.ToString ());

Miután létrehozta a szálakat és végrehajtotta őket végrehajtásra a MyThread osztály konstruktorában. az alkalmazás végrehajtja a fő szálat, és különösen a Main () metódust és öt gyermek szálat.

A hurok használata:

az (int j = 0; j

élő = élő | mt [j] .thrd.IsAlive;

a Main () módszer a szálak kilépését várja.

A fenti példában a szálat az IsAlive () módszerrel végeztük. A második mód, amely lehetővé teszi, hogy "várakozzon" a szál befejezésére, hívja a Join () metódust.

A Join () metódus addig várja, amíg a szál, amelyhez hívták, megszűnt. Ha ezzel a módszerrel dolgozik, rendkívül fontos óvatosságot gyakorolni. A Join () metódus nem hívható meg minden szál indítása előtt, amely párhuzamosan kell működnie. Az a kérdés, hogy a Join () módszer felhívja a szálak kezdetének blokkolását, amelyek még nem kezdődtek meg mindaddig, amíg az összes szálat meg nem szüntették, amelyre ezt a módszert nevezték.

Olvassa el

FLOWS Az "áramlás" kifejezés különböző definíciókat tartalmaz, beleértve a "végrehajtási egység", a "külön parancsszámláló" vagy "a folyamatban tervezett entitást". Bár ezek mindegyike természetesen helyes, egyik sem. [tovább].

FLOWS Az "áramlás" kifejezés különböző definíciókat tartalmaz, beleértve a "végrehajtási egység", a "külön parancsszámláló" vagy "a folyamatban tervezett entitást". Bár ezek mindegyike természetesen helyes, egyik sem. [tovább].

Műveletek fájlokkal Példa a működésre, a fájl egyetértési Streams dolgozó fájlok Munka fájlokkal dolgozni a fájlokat a C ++ nyelv a háromféle áramlások: · bemenet. [tovább].

Kapcsolódó cikkek