C# InteropBitmap同步
WPF InteropBitmap可以从共享内存创建,即C# InteropBitmap同步,c#,wpf,drawing,C#,Wpf,Drawing,WPF InteropBitmap可以从共享内存创建,即 Imaging.CreateBitmapSourceFromMemorySection() 在这种情况下,我们可以在另一个线程或进程中更新共享内存,然后在更新后调用InteropBitmap.Invalidate(),以显示更改 从WPF源代码来看,InteropBitmap只是IWICBitmap的包装,但它不公开用于独占写入的内容 那么,如何同步WPF InteropBitmap的写入和读取 更新发生在用户的线程中 读取总是在WPF
Imaging.CreateBitmapSourceFromMemorySection()
在这种情况下,我们可以在另一个线程或进程中更新共享内存,然后在更新后调用InteropBitmap.Invalidate(),以显示更改
从WPF源代码来看,InteropBitmap只是IWICBitmap的包装,但它不公开用于独占写入的内容
那么,如何同步WPF InteropBitmap的写入和读取
谢谢您可以创建一个包装器类,它公开一个锁对象和操作图像的方法。是一些工作,但会100%工作 比如:
class InteropBitmapSyncWrapper
{
public InteropBitmapSyncWrapper(InteropBitmap wrappedBitmap)
{
WrappedBitmap = wrappedBitmap;
this.Lock = new Object();
}
public InteropBitmap WrappedBitmap
{
get;
set;
}
public Object Lock
{
get;
private set;
}
}