取消运行 C++ 的 NSThread代码
我的 NSThread 的选择器是一个可能长时间运行的 C++ 方法的包装器。我希望线程响应 - cancel
消息,这需要检查 NSThread 对象本身并询问它是否 isCancelled
。
我的 C++ 代码如何向其运行的 NSThread 发送消息?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
与 Objective C 或纯 C 代码中的任何方式完全相同,假设您使用的是 Objective C++ 代码(默认情况下,.mm 扩展名编译为 Objective C++)。然后只需在 C++ 代码中使用
[[NSThread currentThread] isCancelled]
来检查线程取消状态。Objective C++ 给出的对 Objective C 和 C++ 之间接口的限制在 http://en.wikipedia.org/wiki/Objective-C#Objective-C.2B.2B。
Exactly the same way as any in Objective C or pure C code, assuming you're using Objective C++ code (the .mm extension, by default, compiles as Objective C++). Then just use
[[NSThread currentThread] isCancelled]
inside your C++ code to check the thread cancellation status.The restrictions on the interface between Objective C and C++ given by Objective C++ are outlined rather well at http://en.wikipedia.org/wiki/Objective-C#Objective-C.2B.2B.