0

У меня есть простой вопрос. В моем приложении UWP я использую несколько потоков и в то время как на фоновом потоке, когда я пытаюсь создать простой BitmapImage, используя код: var image=new BitmapImage();. Это исключает исключениеUWP bitmapimage на фоне потока

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

Это исключение происходит на самой линии, где я пытаюсь создать изображение. Я просто хочу создать этот образ, обработать его свойства, а затем сохранить его в своем каталоге данных.

Примечание: datalist - это простое публичное статическое свойство, доступное во всем приложении. thankyou

ответ

2

Я не вижу полного контекста из вопроса, поэтому я не уверен, почему это исключение пузырится вверх, но один верный способ исправить это с помощью CoreDispatcher.RunAsync(). В документации сказано:

Если вы находитесь на рабочем потоке и хотите запланировать работу в потоке пользовательского интерфейса, используйте CoreDispatcher :: RunAsync.

Если вы используете MVVMLight, вы можете также использовать это DispatcherHelper класс CheckBeginInvokeOnUI метод. Это немного лучше, так как он сначала проверяет, на какой поток он вызван, и если это поток пользовательского интерфейса, он немедленно выполняет действие и передает его в поток пользовательского интерфейса только при необходимости.

+0

Не забудьте принять мой ответ, если он решает вашу проблему! ;) –

+0

Ваш ответ действительно помог мне найти точный ответ для UWP, вот он http://stackoverflow.com/a/10594388/5305863 –

Смежные вопросы