objective-c - 如何使用dispatch_async_f?

标签 objective-c multithreading macos function grand-central-dispatch

我想要排队的函数没有参数。我将什么作为 paramContext 传递?传入 NULL 会生成编译错误“无效使用 void 表达式”。我不想向我的函数添加一个参数只是为了让它编译 - 我该如何让它工作?

Mac OS X Snowleopard、带有 Objective-C 的 Xcode 3.2.6

最佳答案

虽然您可以只为上下文参数传递 0/NULL,但 dispatch_async_f() 需要 void (*)(void *) 作为函数参数,你不能给它传递一个不带参数的函数。

您需要更改您的函数以采用 void* 参数:

void func(void*) {}

... 或者,如果不能,请将其包装起来:

void orig(void) {}
void wrapper(void*) { orig(); }

// ...
dispatch_async_f(queue, 0, &wrapper);

关于objective-c - 如何使用dispatch_async_f?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9320142/

相关文章:

ios - 如何在启用 ARC 的情况下检索使用 UIImagePickerControllerDelegate 拍摄的图像?

iphone - 表没有得到刷新

java - JFreeChart 不会在线程上的每次迭代时显示图形?

java - 使用 JavaFX 中的 FileChooser 禁用隐藏文件

c++ - 自定义结构的排序不起作用

ios - 如何更新 3D Touch Quick Actions 本地化字幕?

objective-c - NSView 中的放置位置

java dbcp2 多线程连接访问

Javafx 实时线程更新

xcode - 我在哪里可以找到 Xcode6 中的 "Load Symbols Lazily"选项?