On 19 Jul 2012, at 1:47 AM, Rick C. wrote:
> If I use this to initiate a background "thread":
>
>
> dispatch_async(dispatch_get_global_queue(0, 0), ^{
>
> // do some stuff
>
> [self runMyFunction];
>
> [self runAnotherFunction];
>
> // do some more stuff
>
> });
>
>
> My question is with my sample calling runMyFunction or runAnotherFunction are
> they blocking? Meaning will they block the background "thread" until they are
> complete and then it will continue? Or must I put them into another kind of
> block so that they finish FIFO? Thanks just looking for a confirmation as
> I'm moving to GCD from threads...
Grand Central Dispatch and blocks are orthogonal; GCD uses blocks as its unit
of work, but does nothing special to them internally. A block is an anonymous
(Objective-) C function. It executes from top to bottom, and if it calls a
function/method in the middle, the execution path goes into the function, and
when the function returns, execution proceeds in the block from there — just
like any other function. For that reason, you don't have to serialize
-runMyFunction and -runAnotherFunction; they get run one after the other as in
any other code.
— F
--
Fritz Anderson -- Xcode 4 Unleashed: Now in stores! --
<http://x4u.manoverboard.org/>
_______________________________________________
Cocoa-dev mailing list ([email protected])
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to [email protected]