Reputation: 5354
The function that I want queued takes no parameters. What do I pass in as paramContext
? Passing in NULL generates the compile error "Invalid use of void expression". I do not want to add a parameter to my function just to make it compile - how do I make this work?
Mac OS X Snowleopard, Xcode 3.2.6 with Objective-C
Upvotes: 6
Views: 4703
Reputation: 185841
You need to wrap the function somehow. The easiest way is actually to use dispatch_async()
instead, as in
dispatch_async(queue, ^{ myFunc() });
Upvotes: 2
Reputation: 99092
While you can just pass 0
/NULL
for the context argument, dispatch_async_f()
takes void (*)(void*)
as the function parameter, you can't pass it a function that takes no arguments.
You need to either change your function to take a void*
parameter:
void func(void*) {}
... or, if you can't, wrap it:
void orig(void) {}
void wrapper(void*) { orig(); }
// ...
dispatch_async_f(queue, 0, &wrapper);
Upvotes: 11