In keeping with Ian's comment, look at Bob Beauchemin's Essential ADO.NET, Chapter 3. He has a section on cancellation where he says that *if* you do wish the command to be cancelable, you need to both:
1. start the command on a separate thread, and 2. issue the cancel command on an additional separate thread. If the system is busy, you couldn't guarantee that a call to the thread pool would in fact place it on a different thread than the actual command, so you may wish to use both the thread pool (for efficiently dispatching commands), and creating a thread (for cancellation). John John St. Clair Reaktorgruppen AS =================================== This list is hosted by DevelopMentorŪ http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com