Я знаю, что этот вопрос задавался здесь раньше, но я прочитал несколько ответов, которые мне не помогли.
У меня есть ComboBox, который должен получить некоторую информацию, связанную с выбором избаза данных (вероятно, на потерянном фокусе, чтобы остановить тысячу звонков во время прокрутки).Эта информация предназначена только для отображения и не критична, поэтому получение фонового потока / задачи звучит как идеальное решение.Тем не менее, это занимает несколько секунд, так как он получает данные из некоторых очень больших таблиц.Пользователь может свободно переходить к другим задачам, поскольку эта информация действительно предназначена только для отображения / справки.
Этот вопрос требует использования фонового работника, но в этом решении есть две проблемы,1) Изменение выбора, когда работник уже работает, создает проблемы.Вы можете либо не запускать его во второй раз, то есть, когда он вернется, он больше не отображает действительную информацию для нового выбора, либо попытаться отменить его (что не всегда работает).2) По какой-то причине я не могу объяснить, что метод, который фактически обращается к базе данных для фонового работника, возвращается медленнее, если метод находится в Model, чем в ViewModel, где я не думаю, что он принадлежит.Я действительно не знаю, почему.
Этот вопрос имеет несколько голосов, но вопрос ОП сформулирован очень плохо, и выбранный ответ просто говорит: «Да, это должно сработать».
Метод этого вопроса выглядит многообещающе, но связанное видео длится час (я смотрел все это) и касается диспетчера только в течение 10-15 секунд, не объясняя его.Если у кого-то есть ссылка на статью, которая более подробно описывает этот метод, это было бы хорошо.
Пул потоков, как предложено здесь 1018 *, похоже, что это лучший путь, поскольку несколько запросов на поиск просто ставятся в очередь, а не вызывают уже запущенные ошибки.Тем не менее, в нем нет объяснения, как использовать пул потоков, вместо этого ссылки на статью MSDN.Если у кого-то есть ссылка на статью, которая более подробно описывает этот метод, это было бы идеально, так как это кажется лучшим решением (конечно, я могу ошибаться).
Я действительно пытался сделатьмои исследования по этому вопросу, но большинство из этих ответов просто говорят вам, какой метод использовать, а не как его использовать.Я действительно ищу "как".