nscondition

    0热度

    1回答

    我没有太多的信号量经验,也没有太多的经验。我已经看到了关于如何将异步调用转换为同步调用的各种建议。在这种情况下,我只想等待确保iPhone的镜头在拍摄另一张照片之前已经改变了焦点。 我已经添加了一个完成块(用一个小程序来证明我看到它)。但是,如何阻止我的代码(在主线程上运行)的其余部分,直到我获得完成回调? - (void) changeFocusSettings { if ([Set

    0热度

    1回答

    对不起,打扰了另一个NSURLConnection问题,已经在这里添加了一千多个。 该场景如下。在使用动态加载的增强现实功能的iPhone应用程序中,提示用户下载新的AR模型,因为这些模型可用。这些模型可能有几MB大,所以应该在决定之前给用户指示所有要下载的模型的总大小。 要了解每个文件有多大,我想使用异步NSURLConnection,但一旦得到响应([NSURLResponse expecte

    0热度

    1回答

    这里是什么,我有一个方法伪代码: NSCondition condition = [[NSCondition alloc] init]; int predicate = 0; dispatch_sync(dispatch_get_main_queue(),^ { [condition lock]; // Lock-0 }); bindBlock1ForDataReceiv

    0热度

    2回答

    我正在创建一个阻塞队列,由大约10个工作线程同时访问。基本实现队列是这样的: -(void) enqueue:(__strong id)value { [_mutex lock]; while ([self size] == _maxSize) { [_mutex wait]; } [_queue enqueue:value];

    2热度

    1回答

    它们都使用计数器并使用锁来保护计数器的递增和递减,并且当计数器小于零时,线程将等待。在我看来,除了他们的API之外,他们是一样的。

    3热度

    2回答

    我有一个nsthread,在这个之内的while循环。它从主方法的“线程安全”队列中获取对象。当我离开包含此nsthread对象的UIViewController时,我调用nsthread cancel方法,但它不会停止,因为它被“queueLock”NSCondition锁定。当我回到这个UIViewController时,会创建一个新的nsthread,并将这些对象组成队列,但是前一个线程仍然

    2热度

    1回答

    我正在编写一个ssh包装器在objective-c中,我试图实现一个maxTime命令应该执行。我实现它的方式是: 主线: 计算超时 创建asyncThread(GCD队列)来执行命令,并解析返回的数据 waitForTimeoutOrSignal 返回结果 AsyncThread: 执行命令 得到返回的数据 如果接收到正确的数据信号MainThread 在C#我不得不使用ManualResetE

    3热度

    1回答

    我知道下面是你应该如何使用NSCondition: 方法1: [cocoaCondition lock]; while (someConditionIsTrue) [cocoaCondition wait]; // Do real work here. [cocoaCondition unlock]; 方法2: [cocoaCondition lock]; timeToD

    2热度

    1回答

    我通过互联网异步下载四个plist文件。我需要等到所有四个文件都下载完毕,直到我第一次运行时,推送一个UIViewController或所有后续运行时,刷新数据并重新加载所有UITableView。 第一次运行时,一切正常。刷新时,所有四个url请求都被调用并启动,但从不调用它们的完成或失败块,并且UI冻结。这是奇怪的,因为我在后台线程中执行所有操作。我一直无法弄清楚为什么会发生这种情况。 第一次