Quu*_*one 9 xcode multithreading nsthread
Xcode的"线程列表"窗格显示了几个特殊线程的英文名称:com.apple.main-thread,com.apple.libdispatch-manager,com.dispatchfractal.opencl,com.dispatchfractal.opengl,com.apple.root.低优先级,但对于用户创建的线程,该字段只是空白.
有没有办法从我的应用程序以编程方式设置"线程名称"字段?例如,如果我有一个专门用于网络I/O的线程,我希望它在调试器中显示为"com.example.network-io"; 如果我生成五个工作线程,我希望能够将它们命名为"worker A","worker B"等.Xcode是否可以从我可以挂钩的某些API中获取其线程名称?也许是这样的CFAssignDebuggerNameToCurrentThread
?:)
Vla*_*mir 10
可能不完全不是你想要的,但是NSThread有setName:
允许你设置线程名称的方法,你可以在线程上附加有意义的名字,这样你就可以在调试器中获得以下内容:
[[NSThread mainThread] setName:@"That is main thread!"];
Run Code Online (Sandbox Code Playgroud)
还要记住,某些api(如大中央调度)与线程池一起运行,因此无法保证在哪个线程上执行操作
编辑:
com.apple.main-thread
,com.apple.libdispatch-manager
等有相应的调度队列的标签.您可以在使用dispatch_queue_create
函数创建队列时设置标签值,然后使用dispatch_queue_get_label
函数从队列中获取标签值.
似乎没有API来更改现有调度队列的标签值,我不建议更改系统队列的标签.
归档时间: |
|
查看次数: |
3512 次 |
最近记录: |