2013-10-02 5 views
1

Я хочу передать объект writeablemmap, сгенерированный из UI (WPF), в асинхронный вызов, но не хочу обновлять записываемый битрейт основного потока. Я просто хочу прочитать некоторые свойства, такие как высота и ширина пикселей. В новом потоке я не могу получить доступ к каким-либо свойствам writeablebitmap, так как он думает, что я пытаюсь запутаться в свойствах writeablebitmap основного потока. Я получаю исключение: «Вызывающий поток не может получить доступ к этому объекту, потому что ему принадлежит другой поток». Некоторые ответы в других потоках предполагали, что они используют Dispatcher.BeginInvoke, но если мне просто нужна копия объекта writeablemart для чтения данных, необходимо ли это?Чтение записанного битового счёта при асинхронном вызове

+0

'Freezables' теряют нить сродство, когда они замораживают. попробуйте вызвать '.Freeze()' в 'WritableBitmap'. В противном случае вы можете создать клон с помощью '.Clone()' и затем заморозить клон. –

+0

Замораживание было именно то, что я искал, большое спасибо! –

+0

, пожалуйста, отметьте мой ответ как принятый, если он вам полезен =) –

ответ

1

Freezables теряют Thread-affinity, когда они замораживаются. попробуйте позвонить Freeze() в WritableBitmap.

В противном случае вы можете создать клон с помощью Clone(), а затем заморозить этот клон

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