Прежде всего, позвольте мне сказать, что я начинающий C#. Мой опыт в основном был с базами данных. Я работаю над проектом, где будут частые вызовы на C# -сервер, который затем вызывает различные хранимые процедуры (около 20 или около того) для извлечения данных из базы данных SQL Server. Прямо сейчас, сервер C# был настроен на синхронные вызовы. Хотя вызовы SP быстры и малы, мы все равно хотели бы реализовать пул потоков для обработки большого пула пользователей и одновременных запросов.Реализация пула потоков для вызовов хранимых процедур
Мои вопросы:
Как реализовать пул потоков? Скорее всего, пул потоков начнется около 500, но может расти в зависимости от использования приложения.
Как добавить вызовы SP в пул потоков. Сейчас мой SP вызов выглядит следующим образом:
int SPCall(string param1, string param2) { string MyConnString = "..."; SqlConnection MyConn = new SqlConnection(MyConnString); MyConn.Open(); SqlCommand SPCommand = new SqlCommand("wh_SP"); SPCommand.Connection = MyConn; SPCommand.Parameters.Add(...) = param1; SPCommand.Parameters.Add(...) = param2; SPCommand.CommandType = System.Data.CommandType.StoredProcedure; SPCommand.ExecuteNonQuery(); int outPut = (int)SPCommand.Parameters["@OUTPUT"].Value; return outPut; }
Не свернуть свой собственный пул потоков - использовать [встроенный] (http://msdn.microsoft.com/en-us/library/system.threading.threadpool.aspx) один. Там есть документация о том, как ставить в очередь рабочие элементы. –