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. 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].Olvassa el
Kapcsolódó cikkek