我有NSOperationQueue
一些NSOperations
(NSInvocationOperations
特别是)。此操作会进行一些计算并相应地更改 UI 元素的状态(当然,通过performSelectorOnMainThread:...
),通常使用动画。
我的 UI 有 UINavigationViewController 和一些用于导航到另一个视图的按钮。因此用户可以离开当前视图,而计算/动画仍在进行中。我需要以某种方式阻止这种情况,直到用户返回当前视图。
我发现的唯一解决方案是创建一些线程安全的布尔标志 - 并在所有线程中检查它(例如:while !flag sleep_for_some_time;)。有更好的吗?