Я просто использую TPL неправильно?Какой лучший способ пойти по этому поводу?Есть ли другой способ, или я просто заставляю пользователя затягивать ожидание?
Скорее всего, вы можете использовать TPL и получить то же время отклика, что и BW, но более приятный API для этого типаоперация.
Хитрость заключается в том, чтобы получить настройку TaskScheduler для взаимодействия с пользовательским интерфейсом, а затем с помощью класса Task вернуть элементы управления обратно в поток пользовательского интерфейса, когда они будут готовы.У меня есть сообщение в блоге на эту конкретную тему , в котором показано, как получить настройку TaskScheduler для использования с потоками пользовательского интерфейса.
Тем не менее, я бы порекомендовал хранить их в памяти и передавать их порциями,чтобы избежать повторного рендеринга пользовательского интерфейса.Скорее всего, это проблема, независимо от того, что вы делаете.
Как говорится, я бы поставил под сомнение ваш общий визуальный дизайн здесь - если вы пытаетесь отобразить более 1200 вопросов пользователю, некоторыеФорма подкачки, вероятно, гораздо приятнее, чем огромный прокручиваемый контейнер.Если вы перелистываете их, вы можете загрузить и обработать первые несколько (что, вероятно, почти мгновенно, поскольку вы упомянули, что вы можете обработать около 50 вопросов в секунду), а затем продолжить загрузку остальных после отображения первых нескольких вопросов.