Я делясь операцией базы данных readonly на несколько фрагментов (каждый из которых считывает подмножество очень большого количества данных, анализирует его и записывает результаты на диск файл).Избегайте таймаута подключения при использовании нескольких потоков и пула подключений
Каждый блок выполняет Select (в DataTable) на новый .net нить (с помощью делегата и BeginInvoke)
Есть еще подмножества данных, чем имеется в наличии соединения в пуле, поэтому, когда я заканчиваются соединения, до того, как первый будет выпущен, последующие запросы на подключение будут помещены в очередь ... до истечения времени ожидания соединения, а затем я получу исключение тайм-аута.
Как я либо: A) блокирует исключение соединения с таймаутом, когда все соединения в пуле все используются, или B) обнаруживают, что все они используются до того, как я попрошу еще одного, поэтому я могу подождать, пока один доступно перед запросом?
с опцией B, этот Thread Pool установлен макс 100 нитей (так как бассейн conections установлен на 100), а затем, в моем коде, где я называю BeginInvoke(), Я вишу, когда используются все 100 потоков, до тех пор, пока ранее используемый поток не завершится и не будет выпущен обратно в мой пул потоков? – 2008-12-02 15:13:51