问题标签 [grand-central-dispatch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4400 浏览

iphone - GCD 获取队列名称/标签

如何获取当前队列名称?

我的意思是队列标签,例如com.example.myqueue.

在 Xcode 4 调试器中,我只能看到_block_invoke_1.

0 投票
1 回答
486 浏览

cocoa-touch - 双核 iPad (A5) = Grand Central Dispatch?

iPhone SDK 是否支持 Grand Central Dispatch,让我们能够利用新 iPad CPU 中的多个内核?

0 投票
3 回答
1257 浏览

objective-c - 识别 GCD 线程

我编写了一个包含持久存储、对象模型和对象上下文的核心数据抽象类。为了使多线程更容易,我为对象上下文编写了访问器,以便它返回一个实例,该实例仅可用于当前线程,通过使用[NSThread currentThread]来标识线程。

只要我不使用 GCD,它就可以完美地工作,我想用它来代替旧的 NSThread。所以我的问题是,我如何识别 GCD 线程?这个问题适用于 iOS 和 Mac OS X,但我猜这两个平台都是一样的。

0 投票
1 回答
2173 浏览

objective-c - dispatch_get_main_queue() 的线程 id

有没有办法找到与“dispatch_get_main_queue()”关联的线程 ID?

0 投票
3 回答
17006 浏览

iphone - Grand Central Dispatch (GCD) 与 performSelector - 需要更好的解释

我在我的应用程序中同时使用了 GCD 和 performSelectorOnMainThread:waitUntilDone,并且倾向于认为它们是可互换的——也就是说,performSelectorOnMainThread:waitUntilDone 是 GCD C 语法的 Obj-C 包装器。我一直认为这两个命令是等效的:

我不正确吗?也就是说, performSelector* 命令与 GCD 命令有区别吗?我已经阅读了很多关于它们的文档,但还没有看到明确的答案。

0 投票
1 回答
297 浏览

objective-c - 关于区块和大中央调度的问题

我有一个问题我找不到答案,因为我想知道我当前的代码是否正确。代码如下。

问题是关于while循环的..这是正确的吗?

PS:Platinum uPnp 在 Start() 之后需要一个 while 循环,否则该过程将明显停止。

0 投票
3 回答
1953 浏览

iphone - iPhone - 取消排队操作 GCD

我有几个任务被分派到串行队列,特别是一些被分派到组的任务。在调度这些任务后,我想给用户取消它们的选项,即使它们已经被执行。

我找不到任何方法来取消排队的任务,然后我想我可以创建一个布尔标志,例如,quitRender 并测试该标志是否为真并退出渲染,但这不起作用,我的解释是:当任务被触发时,标志 quitRender 为 NO,因此它们在块中执行并且块冻结它们开始时的值,块将不会看到更改并且永远不会退出。

然后我尝试了另一种方法:我创建了一个类似的方法

这将运行并向块发送变量的当前值,但显然这些块继续看到 QuitRender 的 NO。

我错过了什么吗?如何使这项工作?

谢谢。

0 投票
2 回答
1329 浏览

cocoa - 无法使用 GCD 调度源从串行端口文件描述符中读取

从串行端口读取时,我在使用 Grand Central Dispatch Source 事件时遇到问题。

我将 dispatch_source_create 与 DISPATCH_SOURCE_TYPE_READ 一起使用,这样当从与串行端口关联的 fileDescriptor 中读取数据时,操作系统将运行我的代码块。这是我的代码

当程序运行时,第一次将串行数据发送到端口时调用该块。然后我在控制台中收到一条消息

当更多字符被发送到串行端口时,不会调用代码块。我仍然可以从串行端口发送字符,并且可以确认正在发送字符,但该块不会再次运行。

从网络上的文档和示例中,我希望只要串行缓冲区中有字符,就会重复调用该块。

0 投票
2 回答
1365 浏览

iphone - NSOperationQueue、内存和 GCD;如何正确实施?

我有一些简单的疑问,NSOperation并且GCD我没有在文档中找到答案。

第一个问题与内存管理有关:

我想知道是否需要为要添加到 NSOperationQueue 的方法创建一个 Autorealease 池;类似于在没有 NSOperations 的不同线程上运行方法时。

下一个问题是是否NSOperation需要处理 GCD 还是需要手动完成?

感谢您的帮助!

0 投票
5 回答
4435 浏览

iphone - 异步调度的递归块

假设我运行这段代码:

该块从外部调用一次。当到达内部调用时,程序崩溃,没有任何细节。如果我在任何地方都使用直接调用而不是 GCD 调度,那么一切正常。

我也试过用块的副本调用 dispatch_after 。我不知道这是否是朝着正确方向迈出的一步,但这还不足以让它发挥作用。

想法?