Dela via


Asynkrona åtgärder

Vissa databasåtgärder, till exempel kommandokörningar, kan ta mycket tid att slutföra. I sådana fall måste entrådade program blockera andra åtgärder och vänta tills kommandot har slutförts innan de kan fortsätta sina egna åtgärder. Om du däremot kan tilldela den långvariga åtgärden till en bakgrundstråd kan förgrundstråden förbli aktiv under hela åtgärden. Om du till exempel delegerar den långvariga åtgärden till en bakgrundstråd i ett Windows-program kan användargränssnittstråden förbli dynamisk medan åtgärden körs.

.NET Framework innehåller flera standardasynkrona designmönster som utvecklare kan använda för att dra nytta av bakgrundstrådar och frigöra användargränssnittet eller trådar med hög prioritet för att slutföra andra åtgärder. ADO.NET stöder samma designmönster i sin SqlCommand klass. BeginExecuteNonQueryMer specifikt ger metoderna , BeginExecuteReader, ochBeginExecuteXmlReader, tillsammans med EndExecuteNonQuerymetoderna , EndExecuteReaderoch EndExecuteXmlReader , det asynkrona stödet.

Kommentar

Asynkron programmering är en viktig funktion i .NET Framework och ADO.NET drar full nytta av standarddesignmönstren. Mer information om de olika asynkrona tekniker som är tillgängliga för utvecklare finns i Anropa synkrona metoder asynkront.

Även om användning av asynkrona tekniker med ADO.NET funktioner inte lägger till några särskilda överväganden, är det troligt att fler utvecklare använder asynkrona funktioner i ADO.NET än inom andra områden i .NET Framework. Det är viktigt att vara medveten om fördelarna och fallgroparna med att skapa flertrådade program. Exemplen som följer i det här avsnittet pekar på flera viktiga problem som utvecklare måste ta hänsyn till när de skapar program som innehåller flertrådade funktioner.

I det här avsnittet

Windows-program som använder återanrop
Innehåller ett exempel som visar hur du kör ett asynkront kommando på ett säkert sätt och hanterar interaktion med ett formulär och dess innehåll från en separat tråd.

ASP.NET program med väntereferenser
Innehåller ett exempel som visar hur du kör flera samtidiga kommandon från en ASP.NET sida med hjälp av Väntehandtag för att hantera åtgärden när alla kommandon har slutförts.

Avsökning i konsolprogram
Innehåller ett exempel som visar användningen av avsökning för att vänta tills en asynkron kommandokörning har slutförts från ett konsolprogram. Den här tekniken är också giltig i ett klassbibliotek eller ett annat program utan användargränssnitt.

Se även