Sdílet prostřednictvím


Asynchronní operace

Dokončení některých databázových operací, jako jsou provádění příkazů, může trvat značné množství času. V takovém případě musí aplikace s jedním vláknem blokovat jiné operace a počkat na dokončení příkazu, aby mohly pokračovat ve svých vlastních operacích. Naproti tomu možnost přiřadit dlouho běžící operaci vláknu na pozadí umožňuje, aby vlákno popředí zůstalo v průběhu operace aktivní. V aplikaci pro Windows například delegování dlouhotrvající operace na vlákno na pozadí umožňuje, aby vlákno uživatelského rozhraní zůstalo při provádění operace responzivní.

Rozhraní .NET Framework poskytuje několik standardních vzorů asynchronního návrhu, které mohou vývojáři použít k využití vláken na pozadí a uvolnění uživatelského rozhraní nebo vláken s vysokou prioritou k dokončení dalších operací. ADO.NET podporuje stejné vzory návrhu ve své SqlCommand třídě. Konkrétně , BeginExecuteNonQuery, BeginExecuteReadera BeginExecuteXmlReader metody, spárované s EndExecuteNonQuery, EndExecuteReadera EndExecuteXmlReader metody, poskytují asynchronní podporu.

Poznámka:

Asynchronní programování je základní funkcí rozhraní .NET Framework a ADO.NET plně využívá standardní vzory návrhu. Další informace o různých asynchronních technikách dostupných vývojářům najdete v tématu Asynchronní volání synchronních metod.

I když použití asynchronních technik s funkcemi ADO.NET nepřidá žádné zvláštní aspekty, je pravděpodobné, že více vývojářů bude používat asynchronní funkce v ADO.NET než v jiných oblastech rozhraní .NET Framework. Je důležité vědět o výhodách a nástrahách vytváření vícevláknových aplikací. Příklady, které následují v této části, ukazují na několik důležitých problémů, které budou vývojáři muset vzít v úvahu při vytváření aplikací, které obsahují vícevláknové funkce.

V tomto oddílu

Aplikace Windows využívající zpětná volání
Poskytuje příklad demonstrující, jak bezpečně spustit asynchronní příkaz, správně zpracovat interakci s formulářem a jeho obsahem z samostatného vlákna.

Aplikace ASP.NET využívající obslužné rutiny čekání
Poskytuje příklad, který ukazuje, jak spustit více souběžných příkazů z ASP.NET stránky pomocí obslužných rutin čekání ke správě operace při dokončení všech příkazů.

Dotazování v konzolových aplikacích
Poskytuje příklad ukazující použití dotazování k čekání na dokončení asynchronního spuštění příkazu z konzolové aplikace. Tato technika je také platná v knihovně tříd nebo jiné aplikaci bez uživatelského rozhraní.

Viz také