Aszinkron műveletek
Egyes adatbázisműveletek, például a parancsvégrehajtások végrehajtása jelentős időt vehet igénybe. Ilyen esetben az egyszálas alkalmazásoknak le kell tiltaniuk a többi műveletet, és meg kell várniuk, amíg a parancs befejeződik, mielőtt folytathatják a saját műveleteiket. Ezzel szemben a hosszú ideig futó művelet háttérszálhoz való hozzárendelése lehetővé teszi, hogy az előtérszál aktív maradjon a művelet során. Windows-alkalmazásokban például a hosszan futó művelet háttérszálra való delegálása lehetővé teszi, hogy a felhasználói felület szála rugalmas maradjon a művelet végrehajtása közben.
A .NET-keretrendszer számos szabványos aszinkron tervezési mintát biztosít, amelyekkel a fejlesztők kihasználhatják a háttérszálak előnyeit, és más műveletek elvégzéséhez felszabadíthatják a felhasználói felületet vagy a magas prioritású szálakat. ADO.NET ugyanazokat a tervezési mintákat támogatja az osztályában SqlCommand . Pontosabban a BeginExecuteNonQuery, BeginExecuteReader, és BeginExecuteXmlReader metódusokkal EndExecuteNonQueryEndExecuteReaderEndExecuteXmlReader párosított metódusok biztosítják az aszinkron támogatást.
Feljegyzés
Az aszinkron programozás a .NET-keretrendszer alapvető funkciója, és ADO.NET teljes mértékben kihasználja a standard tervezési mintákat. A fejlesztők számára elérhető különböző aszinkron technikákról további információt a szinkron metódusok aszinkron meghívása című témakörben talál.
Bár az aszinkron technikák ADO.NET funkciókkal való használata nem ad különleges szempontokat, valószínű, hogy több fejlesztő fog aszinkron szolgáltatásokat használni a ADO.NET, mint a .NET-keretrendszer más területein. Fontos tisztában lenni a többszálú alkalmazások létrehozásának előnyeiről és buktatóiról. Az ebben a szakaszban szereplő példák több fontos problémát mutatnak be, amelyeket a fejlesztőknek figyelembe kell venniük a többszálú funkciókat tartalmazó alkalmazások létrehozásakor.
A szakasz tartalma
Windows-alkalmazások visszahívásokkal
Egy példa bemutatja, hogyan hajthat végre biztonságosan egy aszinkron parancsot, és hogyan kezeli megfelelően az űrlapokkal és annak tartalmával való interakciót egy külön szálból.
alkalmazások ASP.NET várakozási fogópontokkal
Egy példa bemutatja, hogyan hajthat végre egyszerre több parancsot egy ASP.NET oldalról, a Wait leírókkal az összes parancs befejezésekor kezelheti a műveletet.
Lekérdezés a konzolalkalmazásokban
Egy példa bemutatja, hogyan használható a lekérdezés egy konzolalkalmazás aszinkron parancsvégrehajtásának befejezésére. Ez a technika egy osztálytárban vagy más, felhasználói felület nélküli alkalmazásban is érvényes.