использование потоков и шаблонов - PullRequest
0 голосов
/ 07 января 2011

У меня есть база данных.представьте, что моя база данных содержит 1.000.000.000 записей или содержит 100 ГБ данных.Я хочу написать программу.

программа в основном отправит запрос в базу данных, чтобы получить 10 записей, и отобразит эти записи на экране.затем пользователь будет использовать полосу прокрутки в меню, чтобы изменить отображаемые записи.например, когда прокручиваемая пользователем программа отображает записи между 2 и 11. Если пользователь продолжает прокручивать вниз, записи продолжают отображаться как между 3 и 12, 4 и 13 ... также пользователь может прокручивать вверх.

Как я могу использовать темы в такой программе.Кто-нибудь может дать общее представление об этом.также, если я хочу использовать шаблон, какой шаблон я могу использовать и почему?

примечание: я также могу использовать две кнопки (вверх и вниз) вместо полосы прокрутки.

Ответы [ 2 ]

1 голос
/ 08 января 2011

Типичным шаблоном будет иметь один поток для обработки пользовательского интерфейса.Мышь, управление окнами, рисование и т. Д.

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

Во всяком случае,поддержание отзывчивости пользовательского интерфейса во время выполнения работы является типичным шаблоном.

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

0 голосов
/ 08 января 2011

См. Также для Model View Controller (MVC), Model View Presenter (MVP) и Model View ViewModel (MVVM) шаблонов для разделения визуализации, бизнес-логики и слоев данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...