jjzjj

NSThread

全部标签

ios - 如何判断当前线程是否创建为 NSThread?

我从购买的媒体流SDK库中获得C++回调,它在内部创建了多个线程。具体来说,当库想要记录一条消息时,我会收到回调。有时我在某些NSThread的上下文中被调用,那里有一个自动释放池,但有时我被其他没有自动释放池的线程调用。一些调用线程是实时线程(音频抓取等),因此性能很重要。如何区分在NSThread(应用程序的主线程或其他NSThread)中调用我的情况和由SDK库创建的内部“仅C++”线程?Apple的文档中没有任何内容告诉我使用时会发生什么[NSThread当前线程]当我处于另一种线程的上下文中时,以及当我在NSThread上调用pthreadSelf()或类似API时会发生什么

ios - MKAnnotation 不会出现在使用 NSThread 的 map 中

我有一个在map中插入注释的方法。此方法由map的委托(delegate)方法调用。问题是注释没有出现在map中。我必须再触摸一次map才能显示注释。插入注释后,我正在使用[CATRansactionflush],但它不起作用。代码上方:映射委托(delegate)方法:-(void)mapView:(MKMapView*)mapViewregionDidChangeAnimated:(BOOL)animated{log(@"regionchanged");if(_userRegion.center.latitude){log(@"Movemap.Newlocation:%fX%f",

ios - NSThread gtm_performBlock 错误

我正在尝试运行GoogleMapsSDKforiOS文档中的街景示例,但出现以下错误:`-[NSThreadgtm_performBlock:]:unrecognizedselectorsenttoinstance0x1d55d1f0.***Terminatingappduetouncaughtexception'NSInvalidArgumentException',reason:'-[NSThreadgtm_performBlock:]:unrecognizedselectorsenttoinstance0x1d55d1f0'.libc++abi.dylib:terminateca

iphone - ImageView 未在 NSThread 上更新

我正在尝试制作一个测试应用程序来衡量线程的性能。但是,我试图在线程上将图像设置为imageview并且它没有更新。事实上,方法setImage1和setImage2甚至都没有被调用。有任何想法吗?详情看代码#import"UntitledAppDelegate.h"#import@implementationUntitledAppDelegate@synthesizewindow,imageView1,imageView2,label1,label2,label0;-(BOOL)application:(UIApplication*)applicationdidFinishLaunch

c++ - 我们可以在 iPhone 应用程序中使用 pthread 而不是 NSThread

嗯,我有一个同时使用ObjectiveC和C++的应用程序,但出于可移植性的原因,我尝试尽可能多地使用C++...。现在我遇到了一些需要线程的问题,我正在考虑使用pthread而不是NSThread...可以使用pthread吗?Apple会通过拒绝我在应用商店中的应用来惩罚我使用它吗? 最佳答案 NSThread是围绕pthread构建的我看不出任何使用pthread会导致苹果拒绝的原因 关于c++-我们可以在iPhone应用程序中使用pthread而不是NSThread,我们在Sta

iphone - 使用 [NSThread detachNewThreadSelector :toTarget:withObject:] 时如何设置自动释放池

您好,我正在使用[NSThreaddetachNewThreadSelector:toTarget:withObject:]并且我遇到了很多内存泄漏,因为我没有为分离线程设置自动释放池。我只是想知道我实际上在哪里做这个?是不是在我打电话之前[NSThreaddetachNewThreadSelector:toTarget:withObject:]或者在另一个线程中运行的方法中?任何帮助将不胜感激,一些示例代码会很棒。谢谢。 最佳答案 在你用线程调用的方法中......即给定这个......[NSThreaddetachNewThre

ios - 如何在不立即执行选择器的情况下创建一个不是主线程的 NSThread

我想创建一个不是主线程的工作线程,这样我就可以调用...[selfperformSelector:@selector(doStuff)OnThread:self.myWorkerThreadwithObject:nil];...在我的代码中的许多位置。我如何创建一个线程……任何线程并将其分配给一个变量,以便我可以在我的代码中反复使用它。NSThreaddetachNewThreadWithSElector只会创建一个用于运行那个选择器。我需要创建一个线程并以某种方式使用它。我正在使用iOS,需要在writerThread上执行我所有的CoreData写入。我每次都需要使用相同的线程(不

ios - NSThread callStackSymbols 记录 <redacted> 符号

我正在尝试调试一些并发代码,当我记录[NSThreadcallStackSymbols]时;控制台将我感兴趣的大部分符号显示为。有没有办法在运行时解决这个问题?我已经删除了设备符号文件夹,但Xcode重新符号化似乎无法解决问题。这里还有一些其他问题,但他们似乎都试图在崩溃文件中解决这个问题。如何在调试控制台中查看框架符号的方法名称?我正在运行Xcode5。 最佳答案 您只会显示所有符号:调试时生成完整的崩溃报告并对其进行符号化时。使用atos和磁盘上相应的dSYM或系统符号手动符号化地址(您需要为每个框架和二进制文件加载地址才能做到

multithreading - 有什么方法可以在不创建伪造的 NSThread 的情况下进入 Cocoa 多线程模式?

Apple线程指南说:Formultithreadedapplications,Cocoaframeworksuselocksandotherformsofinternalsynchronizationtoensuretheybehavecorrectly.Topreventtheselocksfromdegradingperformanceinthesingle-threadedcase,however,CocoadoesnotcreatethemuntiltheapplicationspawnsitsfirstnewthreadusingtheNSThreadclass.Ifyou

objective-c - 在 NSOperation 中使用 NSThread sleep

在处理一些代码时,我在NSOperation中遇到了运行循环,我是新手。NSOperation正忙于下载数据-在它们忙碌的同时,有代码等待下载完成,以NSRunLoop和线程的形式sleep。我对这段代码特别感兴趣:while(aCertainConditionIsTrue&&[selfisCancelled]==NO){if(![[NSRunLoopcurrentRunLoop]runMode:NSDefaultRunLoopModebeforeDate:[NSDatedateWithTimeIntervalSinceNow:1.0]]){[NSThreadsleepForTimeI