Howzit!
Я веб-разработчик, которого недавно попросили разработать приложение для форм Windows, поэтому, пожалуйста, потерпите меня (или не смейтесь!), Если мой вопрос немного элементарен.
После многих сессий с моим клиентом мы в конечном итоге выбрали интерфейс, который содержит tabcontrol с 5 вкладками. Каждая вкладка имеет сеточное представление, которое может в конечном итоге содержать до 25 000 строк данных (по 6 столбцов в каждой). Мне удалось связать сетки, когда загружена закладка, и она отлично работает для нескольких записей, но пользовательский интерфейс зависает, когда я связываю сетку с 20 000 фиктивных записей. «Замораживание» происходит, когда я нажимаю на саму вкладку, а пользовательский интерфейс освобождается (и страница вкладки отображается) только после завершения привязки.
Я сообщил об этом клиенту и упомянул возможность подкачки для каждой сетки, но она является дополнением w.r.t. НЕ желая этого. Тогда мой единственный вариант - это найти какой-то асинхронный способ сделать это в фоновом режиме. Я не очень разбираюсь в многопоточности оконных форм, но знаю, что для этого могу использовать элемент управления BackgroundWorker. Моя единственная проблема после того, как я немного прочел об этом, заключается в том, что он идеально подходит для «длительных» задач и операций ввода-вывода.
Мои вопросы:
- Как определить долгосрочную задачу?
- Как НЕ ПРОПУСТИТЬ элемент управления BackgroundWorker, т.е. есть ли общие рекомендации, которым нужно следовать при использовании этого? (Я понимаю, что открытие / создание нескольких потоков может быть нежелательным в некоторых случаях)
- Самое главное: как можно (асинхронно) выполнить привязку просмотра данных после вкладки - и всех ее дочерних элементов управления - загрузки.
Спасибо за чтение этого длинного ( гм ) запроса, и я очень ценю любые ответы / мысли / указания по этому вопросу!
ура!