首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要使用NSLock吗?

我需要使用NSLock吗?
EN

Stack Overflow用户
提问于 2011-11-23 07:24:21
回答 3查看 804关注 0票数 1

我有一个iOS类,它在一个单独的线程中执行一些计算,而主线程显示一个允许用户取消计算的警报。计算线程使用几个实例变量,可以从主线程和计算线程访问这些变量。计算线程仅读取这些变量,并且在计算线程存在时,主线程不会写入或读取这些变量。

我的问题是,我需要锁定这些变量吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-23 07:28:13

只要只有一个线程访问它们,就不需要锁定它们。尝试一下可能是一个很好的做法,如果你想从主线程访问它们,现在就做会很有好处。

票数 3
EN

Stack Overflow用户

发布于 2011-11-23 07:28:28

不,你不能。只有当变量同时被多个线程写入和读取时,才需要锁定这些变量。

票数 2
EN

Stack Overflow用户

发布于 2011-11-23 08:07:38

同意Kevin的观点,您应该为将来的更改做好计划,以防需要访问它们。

仅供参考,我不会使用警告,因为它会阻塞主视图。我推荐一个活动指示器视图,以及一个允许他们取消的额外按钮。

您可以在每个常规输入控件(按钮、分段控件等)中进行检查,以确保应用程序“未处理”以便接受输入。

代码语言:javascript
复制
- (IBAction)someOtherButtonPressed:(id)sender {
  if( processingFlag == NO ) {
    // allow handling of input
  }
  else {
    // alert or other message indicating the app is processing
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8235359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档