В настоящее время работает с Oracle, но также потребуется решение для MS SQL.
У меня есть графический интерфейс, который позволяет пользователям генерировать SQL, который будет выполнен в базе данных. Это может занять очень много времени, в зависимости от поиска, который они создают. Я хочу, чтобы GUI/App реагировал во время этого поиска, и я хочу, чтобы пользователь мог отменить поиск.
Я использую тему рабочего рабочего.
Моя проблема в том, что когда пользователь отменяет поиск, я не могу прерывать вызов в базу данных. Он ждет, пока он не будет завершен, и затем он сможет опросить свойство "Отмена". Этот ресурс не только в базе данных, но и создает проблемы для моего кода.
Если пользователь нажимает "Поиск" по очень длинному запросу, затем нажимает "Отмена", а затем снова "Поиск" - первый поиск по-прежнему прерывается в базе данных. Фоновый рабочий все еще занят, когда они снова находят поиск. Единственное решение, которое я поставил перед этой проблемой, - это сделать нового работника фона.
Кажется, это действительно уродливый способ сделать что-то. База данных продолжает работать. Я создаю новые экземпляры фоновых работников.... когда я действительно хочу остановить вызов базы данных и повторно использовать одного и того же работника.
Как я могу это сделать?