Так у меня есть очень простое программное обеспечение для вызова Multi Image списка
и показать их в формате (Next
) + (Previous
), как это :Компьютер замирает, когда зацикливание большого списка изображений в C# - Wpf
и его работа отлично подходит для меня, но когда я Держите на кнопку (NEXT), чтобы пройти все пункты быстрого, после 10 или 20 пункта в все окно замерзает и Лаг, некоторые отборное говорит использовать фоновую работнику, чтобы предотвратить это, так что я попытался вставить это:
var getImage = Directory.EnumerateFiles(DirName, Ext,
SearchOption.TopDirectoryOnly);
внутри этого:
Dispatcher.Invoke(DispatcherPriority.Background,
new Action(() => /*### the Images output Here ###*/));
но то же самое Вопросы, которые все еще случаются
как заставить его работать правильно?
, и если есть какой-либо другой способ сделать это, я буду рад узнать об этом.
Dispatcher.Invoke расставляет делегат для выполнения в потоке пользовательского интерфейса. Вы не хотите выполнять какой-либо потенциально долговременный код в потоке пользовательского интерфейса. Почему вы пытаетесь это сделать? – mm8
@ mm8 Я думал, что это будет лучше, чем «BackgroundWorker worker = new BackgroundWorker();», но у меня просто недостаточно знаний о диспетчере и «BackgroundWorker», вот почему я спрашиваю :) и если есть другой способ избежать отставание, когда я вызываю свои изображения, вы можете поделиться с нами :), это платформа знаний, и мы здесь для этого. –
Вы должны выполнить любую длительную операцию в фоновом потоке, но имейте в виду, что вы можете получать доступ только к элементам пользовательского интерфейса в потоке пользовательского интерфейса. Пожалуйста, обратитесь к моему ответу за дополнительной информацией. – mm8