Asynchronous Execution in ADO.NET 2.0
page 2 of 9
by Satheesh Babu
Feedback
Average Rating: This article has not yet been rated.
Views (Total / Last 10 Days): 59804/ 115

Synchronous Model

Consider the listing of code below, which is purely synchronous.

Listing 1 - Synchronous

SqlDataReader dr1 = com.ExecuteReader();
//Other lines of codes
 SqlDataReader dr2 = com.ExecuteReader();

Synchronous means, the thread that is executing line 1 will wait until the database operations is complete and proceed with the execution of line 2. If the database operation is really massive, then the execution will not proceed with the other lines of code until the massive database operation is completed. This makes the application respond slower and the end user might feel the application is not performing well. This degradation can be mitigated with the new extensions of ADO.NET 2.0 which is called Asynchronous ADO.NET commands. With this, it is possible to execute massive database operations asynchronously in a separate thread by proceeding current execution of other lines of code without waiting for the massive database operations to complete. We will see this in detail in coming sections.


View Entire Article

User Comments

Title: f   
Name: f
Date: 2012-09-29 7:03:06 AM
Comment:
f
Title: thank you   
Name: khoa
Date: 2011-06-12 7:21:13 PM
Comment:
very good code and article
Title: Code Monkey   
Name: King Kong
Date: 2009-10-29 12:20:15 PM
Comment:
This is a great article. Very concise and to the point.
Title: InvalidOperation exception   
Name: Ross
Date: 2009-01-29 9:36:34 AM
Comment:
Kevin - Is the DB connection still open at the point you call EndExecuteReader()?
Title: InvalidOperation exception   
Name: Kevin Burton
Date: 2008-12-18 11:42:00 PM
Comment:
I have some code that I was trying to improve by adding the new asynchronous SQL methods Begin... and End.... But when I add it to my code I get an exception:

InvalidOperationException.
{"The asynchronous operation has already completed."}

The first few frames of the stack trace look like:

at System.Data.SqlClient.SqlCommand.VerifyEndExecuteState(DbAsyncResult
dbAsyncResult, String endMethod)
at System.Data.SqlClient.SqlCommand.InternalEndExecuteReader(IAsyncResult
asyncResult, String endMethod)
at System.Data.SqlClient.SqlCommand.EndExecuteReader(IAsyncResult
asyncResult)

In searching the internet I see that at least one other person has seen this problem. I was wondering if there is a work around? If anyone has gotten the asynchronous methods to work without this exception I would very much appreciate their tips. I would also welcome a confirmation message of simply "this is a known bug".

Comments?

Thank you.

Kevin
Title: very useful   
Name: RuneAletheia
Date: 2008-12-16 3:24:03 PM
Comment:
this article was very helpful at explaining basic implementation of async -- also, the updated link to the reference is:

http://nayyeri.net/blog/Asynchronous-command-execution-in-NET-2-0/
Title: Very Good   
Name: Sunil Dhiman
Date: 2008-07-04 12:17:38 AM
Comment:
this article helped me very much.
thanks.
Title: Very Good   
Name: Samim Mondal
Date: 2008-04-02 3:16:42 AM
Comment:
Its very good article....
Title: RE:Thank you   
Name: satheesh babu
Date: 2008-03-24 12:55:18 PM
Comment:
Thanks for the comments guys!!
Satheesh
http://www.codedigest.com
Title: Thank you   
Name: Beri
Date: 2008-03-24 12:51:21 PM
Comment:
I've been struggling to make sense of Asynchronous Transcations. This article has helped me a lot. Thank you very much Sateesh.
Title: Mrs   
Name: JayaNayagam
Date: 2008-01-07 1:14:14 AM
Comment:
The author explains quite clearly,quite useful.
Title: Nice info   
Name: Abhishek Kumar Singh
Date: 2007-12-20 4:41:16 AM
Comment:
nice one

Product Spotlight
Product Spotlight 





Community Advice: ASP | SQL | XML | Regular Expressions | Windows


©Copyright 1998-2019 ASPAlliance.com  |  Page Processed at 2019-12-11 7:47:03 PM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search