the*_*end 3 cocoa cocoa-touch nsthread grand-central-dispatch
如何检查dispatch_queue_t变量之间的相等性?
dispatch_queue_t currentQueue = dispatch_get_current_queue();
dispatch_queue_t mainQueue = dispatch_get_main_queue();
if (currentQueue == mainQueue) {
}
Run Code Online (Sandbox Code Playgroud)
来自文档:
typedef struct dispatch_queue_s *dispatch_queue_t;
Run Code Online (Sandbox Code Playgroud)
我不确定,但这是否意味着它是一个指向dispatch_queue_s结构的指针?
由于我无法检查指针的相等性,我不知道如何检查dispatch_queue_t是否与另一个相同?
ale*_*pie 23
由于不推荐使用dispatch_get_current_queue(),我们可以按标签比较当前和您的队列(或者@jkh建议的细节)
用于标签
dispatch_queue_get_label(dispatch_queue_t queue);
Run Code Online (Sandbox Code Playgroud)
并传递DISPATCH_CURRENT_QUEUE_LABEL以获取当前队列的标签
具体如下:
dispatch_queue_get_specific(dispatch_queue_t queue, const void *key);
Run Code Online (Sandbox Code Playgroud)
为了让你排队特定和
dispatch_get_specific(const void *key);
Run Code Online (Sandbox Code Playgroud)
对于当前
需要为您的队列设置标签和特定标签中的一个或两个.例如,当您创建它时
dispatch_queue_create(const char *label, dispatch_queue_attr_t attr);
Run Code Online (Sandbox Code Playgroud)
或者使用特定的setter
dispatch_queue_set_specific(dispatch_queue_t queue, const void *key,
void *context, dispatch_function_t destructor);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5093 次 |
| 最近记录: |