gpt4 book ai didi

c# - WriteableBitmap 不能在单独的线程上工作?

转载 作者:太空宇宙 更新时间:2023-11-03 11:54:52 32 4
gpt4 key购买 nike

我有一个 WritableBitmap,它在单独的线程上更新,特别是响应事件。

myWritableBitmap.Lock();
CopyMemory(myWritableBitmap.BackBuffer, ...);
myWritableBitmap.AddDirtyRect(...);
myWritableBitmap.Unlock();

当按原样在单独的线程上运行时,Lock() 命令会抛出一个 System.InvalidOperationException

如果我像这样运行相同的代码:

this.Dispatcher.Invoke(new VoidDelegate(delegate
{
//Same code as above...
}));

没有抛出异常,代码运行完美。 Lock() 的目的不是允许多线程访问吗?知道为什么会这样吗?

最佳答案

许多 WPF 绘图函数必须在 STAThread 中运行。第二段代码使您的绘图函数在主 UI 线程中运行。

编辑:更多关于 WPF 中的线程的信息发现 here .

关于c# - WriteableBitmap 不能在单独的线程上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/826557/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com