WPF InteropBitmap может быть создан из разделяемой памяти, т.е.
Imaging.CreateBitmapSourceFromMemorySection()
В этом случае мы можем обновить разделяемую память в другом потоке или процессе, а затем после обновления вызвать InteropBitmap.Invalidate () , чтобы представить изменения.
Из исходного кода WPF InteropBitmap - это просто оболочка IWICBitmap, но она не предоставляет IWICBitmap :: lock , которая используется для эксклюзивной записи.
Итак, как мне синхронизировать запись и чтение WPF InteropBitmap?
- Обновление происходит в пользовательской ветке.
- Чтение всегда происходит во внутреннем потоке рендеринга WPF через IWICBitmapSource :: CopyPixels
Спасибо