Generally, you create a Command, and use the appropriate Async method to
start it. This returns an "async handle" as it were. You then poll, waiting
for the running state to change when you can use another method to retrieve
the DataReader (resultset(s)). You can also use several other techniques to
test for completion but there are lots of nuances, special coding rules and
other stuff you need to know before getting started...
I have a long section in my book on this technique. It does not really lend
itself to a quick answer. It's like asking "How does American politics
work?"
--
__________________________________________________________________________
William R. Vaughn
President and Founder Beta V Corporation
Author, Mentor, Dad, Grandpa
Microsoft MVP
(425) 556-9205 (Pacific time)
Hitchhiker's Guide to Visual Studio and SQL Server (7th Edition)
____________________________________________________________________________________________