Типичным шаблоном будет иметь один поток для обработки пользовательского интерфейса.Мышь, управление окнами, рисование и т. Д.
Будет создан рабочий поток, выполняющий фактический ввод / вывод БД.Этот поток будет собирать ответы из базы данных и помещать их в буфер (или отправлять их по частям) в поток пользовательского интерфейса, который затем будет отображать их по мере их поступления. В качестве альтернативы можно было бы сделать так, чтобы поток пользовательского интерфейса запрашивал работника для заданного диапазона.записей, когда пользователь работает с пользовательским интерфейсом , и это потребует от работника способа немедленного ответа, даже если он не имеет всех необходимых данных .
Во всяком случае,поддержание отзывчивости пользовательского интерфейса во время выполнения работы является типичным шаблоном.
На самом уровне БД существует множество способов разбить выполнение поиска по записям на несколько параллельных задач (работающих в независимых потоках).или волокна), выполняя фактический поиск, запрошенный вашей программой.