에서 이미지를 읽을 수있는 적절한 방법 :내부의 데이터 처리와 <code>Thread</code> 실행 내가 클래스를 가지고 다른 스레드
void thread_function()
{
while (client != null)
{
....some stuff...
wrBitmap.WritePixels(rect, rgbch, rowLen, 0); // wrBitmap is WriteableBitmap
OnFrameRdy(this, MyEventsArgs);
}
}
어떻게 메모리 복사하지 않고이 Thread
과정에서 wrBitmap
를 읽을 수 있습니까? 내 Image
wpf 컨트롤에 wrBitmap
을 바인딩해야합니다. 그게 가능하니?
또는 그것을 수행하는 유일한 방법은 클래스의 다른 변수에 대해 wrBitmap
을 복사하여 내 컨트롤에서 읽는 것입니까? 변수를 복사하고 싶지 않아 메모리에 엄청난 오버 헤드가 발생합니다.
이벤트를 사용할 수 있다고 생각하고 내 OnFrameRdy
이벤트를 만들었지 만 여전히 데이터를 사용하지는 않습니다. 난 그냥 당신이 다른 스레드에서 Source
속성을 설정하려고 시도에서 InvalidOperationException
를 얻거나 (당신이 심각이어야 만들어 다른 스레드에서 Bitmap
를 사용하고 내가 이을 추측하고 Image.source = MyClass.wrBitmap
"데이터를 사용하지 못하게하는 것"은 무엇을 의미합니까? 여기 당신 문제는 뭐니? 왜 당신은 스레드에서'Image.source = MyClass.wrBitmap'을 할 수 없습니까? – slawekwin
WritePixels을 Image 컨트롤에 할당 한 후에 수정하려고하십니까? – Clemens
'Image.source = MyClass.wrBitmap'을 쓸 때'InvalidOperationException' 예외가 발생합니다. wrBitmap이 다른'Thread'에서 생성 되었기 때문입니다. 그리고 wrBitmap 데이터를 메모리 오버 헤드없이 Image 컨트롤로 전송하는 방법을 모른다. – Aleksey