我需要异步运行对http服务器的查询并处理响应。这个查询实际上是一个相当大的带有回调的方法调用链。这增加了复杂性,因为在调用链中有很多返回路径。
在当前的请求完全完成之前,不可能启动新的请求。
以下是总纲:
一些线程调用[Foo poll].
poll方法启动两个请求,这些请求在后台运行。在这种情况下,ASIHTTPRequest.[Foo onRequestComplete]。在错误上,调用[Foo onRequestError]。这是第二个返回路径。然后对服务器执行更多的调用,回调和更多的返回paths.下面是问题所在:在这些步骤中,对poll的调用应该被忽略(返回)或阻止,直到投票完成。
在运行另一个轮询时,如何确保poll 函数块或无操作?
发布于 2011-03-25 20:46:07
只需使用NSLock。
在[Foo poll]中
if ([lock tryLock]) {
// Do your stuff
}在[Foo onRequestComplete]中
[lock unlock];https://stackoverflow.com/questions/5437857
复制相似问题