在我的应用程序中,我在后台运行服务器。我正在使用NSOperation
这样做。 (我用GCD之前,但我需要能够阻止它,所以我切换到NSOperation
,但我仍然无法弄清楚如何)强制停止NSOperation或GCD?
所以基本上,我NSOperation
子类看起来是这样的:
- (void)main {
server_main(var1, var2);
}
由于这是一个服务器,server_main
函数基本上不返回。我也无法控制该功能的实施。
偶尔,用户会更改服务器的设置。发生这种情况时,我想停止然后重新启动服务器。如果我理解正确,我需要在NSOperation
子类中执行类似if (self.isCancelled)
的操作,但由于它会卡在server_main
函数中,所以我怀疑它实际上会起作用。
那么我该如何停止服务器?
非常感谢!
是的,我想......我知道这一点,但问题是我不能修改'server_main'出于某种原因。否则,我会完全做到这一点。 – aforaudrey 2013-05-01 13:07:17
@iBlue - 对不起。这是一个阻力,但'server_main'实际上需要提供这两种技术之一才能被取消。 (感叹。)'server_main'是你可以用允许取消的东西来替换的东西吗? (例如,某些框架可以作为库添加,或者可以将其源代码编译为项目的一部分;如果您有源代码,则可以编辑它)或者您坚持使用它? – Rob 2013-05-01 13:17:10
是的,可悲的是我坚持它,因为它是...“<虽然感谢。 – aforaudrey 2013-05-01 17:41:41