【问题标题】:Modal alert in background thread in iPhoneiPhone后台线程中的模态警报
【发布时间】:2011-12-15 13:01:36
【问题描述】:

在我的 iPhone 应用程序中,主线程创建了一个后台线程,该线程做了很多工作,在某些情况下需要询问用户他们的决定。当用户被问到问题时,后台线程应该停止工作,只有在用户回答问题后才能继续工作。

最好的方法是什么?

附言
我试过 iPhone Developer's Cookbook 中的 ModalAlert,据说可以解决问题,但我没有成功。似乎 CFRunLoopRun(应该停止线程执行)只是没有停止后台线程。

我有这样的代码

+(void) main
{
    [NSThread detachNewThreadSelector:@selector(startSync) toTarget:self withObject:nil];
}

+(void) startSync
{
    CFRunLoopRun();
    NSLog("Hi");
}

并且NSLogsyncStart 线程启动后立即执行。很奇怪。

【问题讨论】:

    标签: iphone background alert background-thread cfrunloop


    【解决方案1】:

    你试过NSObjectperformSelectorOnMainThread:withObject:waitUntilDone:方法吗?

    在主线程上向用户提出您的问题,然后将响应存储在您的后台线程可以访问的地方。此外,通过将YES 设置为waitUntilDone: 参数,您应该能够在主线程选择器运行期间阻塞后台线程。

    【讨论】:

      猜你喜欢
      • 2012-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-26
      相关资源
      最近更新 更多