gpt4 book ai didi

objective-c - 不断更新 NSImageView

转载 作者:行者123 更新时间:2023-12-03 17:14:05 25 4
gpt4 key购买 nike

我有一个 NSImageView 需要重绘不断更新的图像。我有一个创建 NSImage 的模型对象,以及一个将该图像链接到 NSImageView 的 Controller 。

通过多线程,我可以轻松地让模型对象在后台线程中不断更新其输出图像。但由于 UI 交互应该在主线程上完成,我无法在后台线程上设置 NSImageView 的图像。如果我在主线程上更新 NSImageView,程序将变得无响应

最佳答案

我不想自相矛盾,但你为什么认为在主线程上更新图像会使程序无响应?

如果计算下一个 NSImage 是瞬时的,那么从逻辑上讲,您应该只计算并显示最后一个,因为中间的任何一个都不会被感知。

如果计算下一个需要一些时间,则在主线程之外进行计算,然后将图像推送到主线程上的 View (例如,使用performSelectorOnMainThread:...)。主线程不会变得无响应,因为当您计算下一个图像来处理其他事件时,它有足够的时间。

如果更新比显示器的帧速率更频繁,那么您可能可以通过使用 CVDisplayLink 设置自己并轮询更新图像的任何内容来获得更好的效果,以便在每次更新时获取最新的图像那个。

关于objective-c - 不断更新 NSImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12061832/

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