Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Delegáti umožňují volat synchronní metodu asynchronním způsobem. Když voláte delegát synchronně, Invoke metoda volá cílovou metodu přímo v aktuálním vlákně. Pokud je metoda BeginInvoke volána, modul CLR (Common Language Runtime) zařadí požadavek do fronty a okamžitě se vrátí k volajícímu. Cílová metoda se volá asynchronně na vlákně z fondu vláken. Původní vlákno, které odeslalo požadavek, může bez omezení pokračovat v provádění paralelně s cílovou metodou. Pokud byla metoda zpětného volání zadána ve volání BeginInvoke metody, volá se metoda zpětného volání při ukončení cílové metody. Ve zpětně volané metodě EndInvoke získá metoda návratovou hodnotu a všechny vstupní/výstupní nebo pouze výstupní parametry. Pokud není při volání zadána žádná metoda zpětného volání BeginInvoke, EndInvoke lze volat z vlákna, které volal BeginInvoke.
Důležité
Kompilátory by měly generovat třídy delegátů s Invoke, BeginInvoke, a EndInvoke metodami používajícími podpis delegáta určený uživatelem. Metody BeginInvoke a EndInvoke by měly být označeny jako nativní. Vzhledem k tomu, že tyto metody jsou označeny jako nativní, CLR automaticky poskytuje implementaci v době načtení třídy. Zavaděč zajistí, že se nepřepíšou.
V této sekci
Asynchronní volání synchronních metod
Popisuje použití delegátů k provádění asynchronních volání obyčejných metod a poskytuje jednoduché příklady kódu, které ukazují čtyři způsoby, jak čekat na návrat asynchronního volání.
Související oddíly
Asynchronní vzor založený na událostech (EAP)
Popisuje asynchronní programování v .NET.