Az aszinkron módszerhívás mindent szól, és programoz
Oldal 1/5
Ez a cikk ismerteti az aszinkron módszer hívások és hogyan kell használni őket, akkor látható, hogy hogyan hívja módszerek aszinkron, hogyan kell átadni paramétereket ilyen módszerek, és hogyan tudják, mikor az eljárás befejeződik végrehajtását. Végül, azt mutatja a csapat egy sablon, hogy egyszerűsítse a kódot.
Ez a cikk az aszinkron módú hívásokat és azok használatát ismerteti. A küldöttekkel, a szálakkal és az aszinkron hívással való együttműködés után itt az ideje megosztani a tudást e kérdésben. Kis lépések és sok példa használható. Általánosságban megmutatja, hogyan kell aszinkron módon hívni a módszereket, hogyan kell átadni a paramétereket ezeknek a módszereknek, és hogyan kell kideríteni, mikor végrehajt egy eljárást. Végül megjelenik a használt parancssablon, amely egyszerűsíti a kód egy részét. Az aszinkron .NET metódushívás nagy előnye, hogy a projekt bármely módját aszinkron módon nevezhetjük a metódus kód megváltoztatása nélkül. Fontos megismerni azokat a trükköket, amelyek a .NET-ben zajló jelenetek mögött zajlanak, és azokat a cikkben megvizsgálják.
Szinkron aszinkron
Meg kell magyarázni a szinkron és az aszinkron módszert hívásokat például.
Szinkron módszert hív
Tegyük fel, hogy van egy Foo () függvény, amely 10 másodpercet igényel.
Általában, ha egy alkalmazás kéri Foo () függvény, meg kell várni 10 másodpercet, amíg a Foo () befejeződött, és a vezérlés nem tér vissza a hívó szálat. Tegyük fel, hogy meg kell hívni Foo () 100-szor, majd a kívánt 1000 másodpercig, hogy visszatérjen a vezérlés a hívó szálat. Ez a mód a hívás szinkron.
1. Hívott Foo ()
2. Foo () végrehajtódik
3. A vezérlés visszatér a hívó szálhoz
Most a Foo () a küldöttek felhasználásával hívják, mert a legtöbb itt elvégzendő munka küldötteken alapul. Szerencsére a .NET keretrendszeren már van egy küldött, amely lehetővé teszi, hogy hívjon egy olyan funkciót, amely nem fogad el paramétereket, és nem ad vissza értéket. A küldött neve MethodeInvoker. Itt az ideje tesztelni.
A fenti példában még a Foo () szót még szinkronban hívják. A hívó szálnak meg kell várnia, amíg az Invoke () függvény befejeződik, amíg a vezérlő visszatér a hívó szálhoz.
Asynchronous módszer hív
De mi van, ha meg kell hívnod Foo () -ot, és várnod kell a végrehajtás befejezését, ha nem számít, mikor fejeződik be? Például, csak akkor kell hívnia a Foo-t 100-szor, anélkül, hogy várakoznánk a függvény hívásainak teljesítésére. Valójában, csinálj valamit, amit lőni és felejteni. A függvény nevezik, nem várható és elfelejtett róla. És a kódvona a szuper bonyolult bonyolult Foo () függvényben nem változik.
Néhány megjegyzés a fenti kóddal kapcsolatban.
• A BeginInvoke () kódsor végrehajtja az Foo () függvényt. Azonban az ellenőrzés azonnal visszahívható a hívó operátornak anélkül, hogy a Foo () befejezése várna.
• A fenti kód nem tudja, hogy a Foo () hívás befejeződik-e, ezt tovább írja le.
• BeginInvoke () az Invoke () helyett használatos. Ne aggódjon a funkció által elfogadott paraméterek miatt; az alábbiakban részletesebben ismertetjük.
• Példák .NET kódot cryptology [forrás - 38,5 KB] [demo - 9.96 Kb] • A végrehajtási AES és a DES a C # [forrás - 35,7 KB] [demo - 13.1 KB] 1. Bevezetés Cryptology - szentelt terület biztonsági és titoktartási . Ez a terület számos kriptográfust tartalmaz, mindegyiket.
Készült egy véges állapotú gépet létrehozni az aktuális termékhez. A termék projektmenedzsment eszköz volt, és ezért feladat-elvként működött, amely a felhasználói műveletek egyik államról a másikra történő áttérésén alapul. Azt is megkövetelte, hogy az államgép legyen konfigurálható a / different.