jjzjj

NSThread

全部标签

ios - GCD 与 performSelectorInBackground/performSelectorOnMainThread

我是ios开发的新手。我有以下问题:何时使用GCD(dispatch_group_async,dispatch_async(dispatch_get_main_queue()...)以及何时使用performSelectorInBackground/performSelectorOnMainThread?这两者有什么不同。我知道当我们使用performSelectorInBackground时,我们创建了一个新的NSThread。但是我们用dispatch_group_async不就一样了吗?因为如果我们创建多个dispatch_group_async,就意味着我们需要在队列中提交多个

ios - GCD、NSThread 或 NSOperationQueue 哪个最好?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。在我们有GCD、NSThread和NSOperationQueue三个选项的情况下,iOS中多线程的最佳方式是什么?我很困惑哪一个是最好的?如果没有,那么应该在什么情况下使用它们以及它们有何不同,另外,如果有人有一些使用NSOperationQueue的好例子,请分享以便我学习。

ios - GCD、NSThread 或 NSOperationQueue 哪个最好?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。在我们有GCD、NSThread和NSOperationQueue三个选项的情况下,iOS中多线程的最佳方式是什么?我很困惑哪一个是最好的?如果没有,那么应该在什么情况下使用它们以及它们有何不同,另外,如果有人有一些使用NSOperationQueue的好例子,请分享以便我学习。

iphone - 帮助 iOS 上的多线程?

我有一个使用OpenEars和Flite库的应用程序。问题是Flite库是资源密集型的,它卡住了我的应用程序。我怀疑在后台线程上运行Flite会解决问题,但我不知道该怎么做。也就是说,我如何在iOS中实现后台线程?如果有人能指出一些教程、分享一些示例代码或任何有助于我解决此问题的一般性建议,我将不胜感激。 最佳答案 ConcurrencyProgrammingGuidebyApple是一本不错的读物。并发编程不是您可能想要通过从Web复制一些示例代码并进行黑客攻击直到您满意为止的东西。了解避免麻烦的选项和原则是件好事。一段时间后重新

iphone - 帮助 iOS 上的多线程?

我有一个使用OpenEars和Flite库的应用程序。问题是Flite库是资源密集型的,它卡住了我的应用程序。我怀疑在后台线程上运行Flite会解决问题,但我不知道该怎么做。也就是说,我如何在iOS中实现后台线程?如果有人能指出一些教程、分享一些示例代码或任何有助于我解决此问题的一般性建议,我将不胜感激。 最佳答案 ConcurrencyProgrammingGuidebyApple是一本不错的读物。并发编程不是您可能想要通过从Web复制一些示例代码并进行黑客攻击直到您满意为止的东西。了解避免麻烦的选项和原则是件好事。一段时间后重新

iOS,如何重启NSThread?

要重新启动NSSthread,我使用以下代码:-(IBAction)listen:(id)sender{thread=[[NSThreadalloc]initWithTarget:selfselector:@selector(listen1)object:nil];[threadstart];[threadcancel];[threadstart];}但是当我构建并按下这个按钮时,我收到了错误:“attempttostartthethreadagain”你能帮帮我吗? 最佳答案 -cancel方法不会停止线程,它只是设置取消标志。C

iphone - 从 NSThread 的函数调用时不调用 NSURLConnection 委托(delegate)

我发送了NSURLConnection请求,它工作正常。现在我想刷新信息,即从按钮的IBAction调用时重新发送NSURLConnection.Refresh正在工作。但不适用于NSThread方法。我该如何解决这个问题。这里的NSThread函数用于运行系统时间。当时间等于凌晨1:00时,我想刷新API。但它不调用NSURLConnection的委托(delegate)。这是NSURLConnection代码:-(void)displays:(model*)place{NSString*strs=[@"http://www.earthtools.org/timezone-1.1/"

ios - 如何在 iOS 中为 NSThread 获取 "parent"线程?

假设“父”线程不是主线程。我如何从线程中知道哪个线程触发了它的创建?示例:主线程触发ThreadA的创建ThreadA触发ThreadB的创建在ThreadB中,我想知道ThreadA是它的“父”更新:我没有在我的应用程序中创建线程。我正在尝试检测现有应用程序。 最佳答案 你不能。没有父线程这样的东西。线程是一个独立的实体,即使一个线程可以与其他线程通信但不涉及层次结构。 关于ios-如何在iOS中为NSThread获取"parent"线程?,我们在StackOverflow上找到一个类

ios - GCD、NSThread 和 performSelector :onThread: issues

我正在尝试调试一些包含以下错误消息的iOS崩溃日志:***Terminatingappduetouncaughtexception'NSDestinationInvalidException',reason:'***-[SomeClassperformSelector:onThread:withObject:waitUntilDone:modes:]:targetthreadexitedwhilewaitingfortheperform代码的相关部分是:-(void)runInvocationOnMyThread:(NSInvocation*)invocation{NSThread*c

iOS - Objective-C - 如何在等待时停止 NSThread?

我有一个nsthread,其中有一个while循环。它在main方法中从“线程安全”队列中获取对象。当我离开包含这个nsthread对象的UIViewController时,我调用nsthreadcancel方法,但它并没有停止,因为它被“queueLock”NSCondition锁定了。当我回到这个UIViewController时,将创建一个新的nsthread并从队列中获取对象,但是前一个线程仍然存在并且它们都尝试使用队列中的相同对象,这会导致内存管理问题。我的问题是当我离开UIViewController时,我应该如何停止这个线程。NSThread主要方法:NSAutorele