Un apel de metodă asincron este totul despre el și despre programare

Pagina 1 din 5

Acest articol explică apelurile metodelor asincrone și modul de utilizare a acestora, arată cum se pot apela metode în mod asincron, modul de transmitere a parametrilor la astfel de metode și cum se poate afla când o metodă finalizează execuția. În cele din urmă, șablonul de comandă utilizat va fi afișat pentru a simplifica o porțiune a codului.







Acest articol explică apelurile metodelor asincrone și modul de utilizare a acestora. După ce ați lucrat cu delegați, fire și un apel asincron, este timpul să împărtășiți cunoștințe despre această problemă. Sunt folosiți pași mici și multe exemple. În general, va arăta cum să apelezi metodele asincron, cum să treci parametrii la astfel de metode și cum să afli când o metodă termină execuția. În cele din urmă, șablonul de comandă utilizat va fi afișat pentru a simplifica o porțiune a codului. Marele avantaj al unui apel prin metoda asincronă .NET este că orice metodă din proiect poate fi apelată asincron fără modificarea codului metodei. Este important să cunoaștem numeroasele trucuri care se întâmplă în spatele scenelor din .NET și vor fi examinate în articol.

Sincron față de asincron

Ar trebui să explicați apelurile metodelor sincrone și asincrone prin exemplu.

Metoda sincronă apel

Să presupunem că există o funcție Foo (), care necesită 10 secunde pentru a executa.

În mod obișnuit, atunci când o aplicație apelează funcția Foo (), trebuie să aștepte 10 secunde până când Foo () este terminată și comanda nu se întoarce la firul de apel. Să presupunem că trebuie să apelați Foo () de 100 de ori, apoi durează 1000 secunde pentru a reveni la controlul firului de apel. Acest tip de apel este metoda sincronă.






1. Numit Foo ()
2. Foo () este executat
3. Controlul revine la firul de asteptare

Acum Foo () este numit folosind delegați, deoarece majoritatea lucrărilor care vor fi realizate aici se bazează pe delegați. Din fericire, cadrul .NET are deja un delegat care vă permite să apelați o funcție care nu acceptă parametrii și nu returnează o valoare. Delegatul se numește MethodeInvoker. Este timpul să-l testați.

Chiar și în exemplul de mai sus, Foo () este încă numit sincron. Fișierul de apel va trebui să aștepte până când se termină funcția Invoke (), până când comanda revine la firul de apel.

Metoda apel asincron

Dar dacă trebuie să-l sunați pe Foo () și să așteptați finalizarea executării sale, dacă nu contează când se termină? De exemplu, trebuie doar să apelați Foo de 100 de ori, fără a aștepta terminarea apelurilor pentru funcții. De fapt, faceți ceva numit trageți și uitați. Se numește o funcție, nu este de așteptat și uitată de ea. Iar linia de cod din funcția complicată super complicată Foo () nu se schimbă.

Câteva observații sunt făcute cu privire la codul de mai sus.
• Linia de cod BeginInvoke () execută funcția Foo (). Cu toate acestea, controlul este imediat returnat operatorului apelant fără a aștepta terminarea Foo ().
• Codul de mai sus nu știe când se va termina apelul către Foo (), acest lucru este descris mai jos.
• BeginInvoke () este folosit în loc de Invoke (). Nu vă faceți griji cu privire la parametrii acceptați de această funcție; acestea sunt descrise mai detaliat mai jos.

• Exemple de cod .NET pe criptologie [sursa - 38.5 KB] [Demo - 9,96 Kb] • Implementarea AES și DES pe C # [sursa - 35,7 KB] [demo - 13.1 KB] 1. Introducere Criptologia - o zonă dedicată de securitate și confidențialitate . Această zonă include multe criptosisteme, fiecare.

A fost necesar să se creeze o mașină de stat finită pentru produsul curent. Produsul a fost un instrument de management de proiect și, prin urmare, a avut un principiu de activitate bazat pe tranzițiile acțiunilor utilizatorilor de la o stare la alta. De asemenea, a fost necesar ca aparatul de stare să fie configurabil pentru / diferit.







Articole similare

Trimiteți-le prietenilor: