title: Avoid connection timeout when using multiple threads and connection pool
body: <p>I'm splitting up a readonly database operation into multiple chunks, (Each of which reads a subset of a very large amount of data, analyzes it and writes the results to a disk file).</p>
  
  <p>Each chunk performs a Select (into a datatable) on a new .net thread (using a delegate and BeginInvoke)</p>
  
  <p>There are more subsets of the data than there are available connections in the pool, so when I run out of connections, before the first one is released, subsequent connection requests are queued up... until the connection timeout expires, and then I get a timeout exception.</p>
  
  <p>How do I either, A) inhibit the timeout connection exception when the connections in the pool are all in use, or B) detect that they are all in use before I even ask for another one so I can wait until one is available before asking? </p>