Запросы к БД в отдельном потоке - C#
Формулировка задачи:
Всем привет!
Хочу спросить специалистов и просто опытных людей.
Делаю приложение winForms. Приложение будет отображать результаты запросов к БД.
так как данные в БД обновляются регулярно, приложение будет обновлять данные из БД по таймеру, например раз в секунду.
Некоторые запросы могут занять продолжительное время, и не хотелось бы, чтобы форма в это время зависала.
Следовательно, запросы надо поместить в отдельный поток.
Таймер хочу использовать однопоточный, System.Windows.Forms.Timer с интервалом 1000.
Для запуска запроса в фоновом режиме буду использовать BackgroundWorker по событию таймера OnTick.
Вопрос: Верно ли я планирую структуру приложения,
и правильно ли использовать таймер формы в потоке самой формы?
Решение задачи: «Запросы к БД в отдельном потоке»
textual
Листинг программы
public async Task LoadAsync() { _locker.EnterWriteLock(); try { if (_isSynchronized) return; using (var connection = new SqlConnection(_connectionString)) { await connection.OpenAsync(); var response = await ReadDatabase(connection); lock (_locker) { _counters = response; _isSynchronized = true; } } } finally { _locker.ExitWriteLock(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д