Interesting. C# allows a similar pattern with threading; it's insanely easy, and like the Objective-C examples they provided, C# code can capture the surrounding context:
void button_Click(object sender, EventArgs e)
{
new Thread(delegate {
var result = doSomeWork();
BeginInvoke(delegate {
RefreshUI(result);
});
}).Start();
}
That's not how I'd write it per se, but it's similar in nature to the Obj-C example the article provided.
It's good that OS X is helping developers out in this way.