相当于可可中的wxYield [重复]

问题描述 投票:0回答:1

我是 MacOS 编程新手。我正在使用 Objective-C 和 XIB 接口来开发 Mac 应用程序。

我正在制作一个用于压缩和解压缩文件/文件夹的应用程序。我还实现了一个进度条来显示任务的进度。

但是,当用户删除一个大文件来压缩应用程序冻结时,进度窗口永远不会显示,但日志工作正常。

我记得当我使用 wxWidgets 时,在这种情况下我必须使用

wxYield()
来处理事件并更新 ui,一切都会好起来的。

那么,在 Cocoa 上做这件事的方法是什么?

c++ objective-c macos cocoa wxwidgets
1个回答
0
投票

我使用了@Willeke的建议来完成它。

我正在另一个线程上执行

zip_close
函数,让主线程处理 UI 更新和事件。

此外,当发出进度回调时,我将通过访问主线程来更新 UI(从另一个线程更改 UI 会发出警告)。

感谢@Igor 和@Willeke 的帮助!

© www.soinside.com 2019 - 2024. All rights reserved.