У меня есть приложение winform, которое создает 5 потоков для подключения и получения информации из базы данных на очень медленном соединении (90 секунд для некоторых запросов). Каждый поток имеет свой собственный экземпляр класса для выполнения запросов sql. Когда запрошенные данные были получены, основной поток уведомляется событием, запущенным из класса, выполняющего запрос. После получения события обновляются различные компоненты основного потока, такие как элементы отображения или просто данные для хранения данных для последующего использования. Запросы повторяются с различными интервалами в зависимости от типа информации, которую они запрашивают.C# am Я обрабатываю несколько потоков правильно
Все отлично работает, но я не доволен. Я чувствую, что это должно быть сделано по-другому, но я не уверен, каким образом.
Ниже, как я в настоящее время настроить каждую нить:
string ConnectionString = @"Data Source=mySrv;Initial Catalog=myTbl;Connect Timeout=30;UID=sa;pwd=mypwd";
//thread #1
SQL_Requests ReasonRequests;
Thread Reason_Thread;
ReasonRequests = new SQL_Requests();
ReasonRequests.ProcessFinished += new SQL_Requests.ProcessFinished(ReasonRequests_Completed);
Reason_Thread = new Thread(ReasonRequests.ExecuteQuery);
ReasonRequests.DBQueryString = "select * from ReasonTable where staralingment = goodalignment"
ReasonRequests.DBConnection = ConnectionString;
//thread #2
SQL_Requests EventRequests;
Thread Event_Thread;
EventRequests = new SQL_Requests();
EventRequests.ProcessFinished += new SQL_Requests.ProcessFinished(EventRequests_Completed);
Event_Thread= new Thread(EventRequests.ExecuteQuery);
EventRequests.DBQueryString = "select * from EventTable where somefield = somevalue"
EventRequests.DBConnection = ConnectionString;
каждый Thread.start находятся на разных интервалах.
любые рекомендации?
Кто знает? Вы сделали это явно. Просто, когда я начинаю думать, что у меня есть рудиментарное знание языка, появляется какой-то парень и говорит, что вы знаете, что вам не нужно тащить это ... у нас здесь колеса! Благодаря! - Брэд (1 мин. Назад) – Brad