2013-10-02 6 views
1

UI (WPF)에서 생성 된 writeablebitmap 객체를 비동기 호출로 전달하려고하지만 주 스레드의 쓰기 가능한 비트 맵을 업데이트하지 않으려합니다. 난 그냥 픽셀 높이와 너비와 같은 일부 속성을 읽고 싶다. 새 스레드에서 writeablebitmap의 속성에 액세스 할 수 없습니다. 기본 스레드의 writeablebitmap 속성을 엉망으로 만들고 있다고 생각하기 때문입니다. 예외를받습니다 : "다른 스레드가 소유하고 있기 때문에 호출하는 스레드가이 개체에 액세스 할 수 없습니다." 다른 스레드의 일부 응답에서 그들은 Dispatcher.BeginInvoke을 사용한다고 제안했지만, writeablebitmap 객체의 복사본을 원한다면 데이터를 읽을 필요가 있습니까?비동기 호출로 쓰기 가능 비트 맵 읽기

+0

'그들이 얼어 붙었다 때 Freezables' 자신의 스레드 친화력을 잃게됩니다. 'WritableBitmap'에서'.Freeze()'를 호출 해보십시오. 그렇지 않으면'.Clone()'을 사용하여 복제본을 생성 한 다음 복제본을 정지시킬 수 있습니다. –

+0

얼어 붙는 것은 그것이 내가 찾고 있었던 정확하게 것이었다, 고맙다! –

+0

유용 할 경우 제 답변을 수락으로 표시하십시오. =) –

답변

1

Freezables 동결했을 때 Thread-affinity가 사라집니다. WritableBitmap에서 Freeze()을 호출 해보십시오.

그렇지 않으면 Clone()를 사용하여 복제를 만든 다음 복제를 동결