Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 块会在运行它的线程上保持执行吗?_Objective C - Fatal编程技术网

Objective c 块会在运行它的线程上保持执行吗?

Objective c 块会在运行它的线程上保持执行吗?,objective-c,Objective C,如果我有这样一个街区: (void) ^contrivedExample = ^{//some expensive operation//}; 并像这样使用它: int test = 1; contrivedExample() test++; 因为递增测试不需要时间,所以这只会在我的块完全执行之后发生吗?是的,它们将保持执行。增量将仅在昂贵的块完成执行后发生 如果你需要复习你的积木,这里有一本关于这件事的好读物: 是的。在块完全执行完毕后,将执行递增的test。块本身不是异步的,尽管它们

如果我有这样一个街区:

(void) ^contrivedExample = ^{//some expensive operation//};
并像这样使用它:

int test = 1;

contrivedExample()

test++;

因为递增测试不需要时间,所以这只会在我的块完全执行之后发生吗?

是的,它们将保持执行。增量将仅在昂贵的块完成执行后发生

如果你需要复习你的积木,这里有一本关于这件事的好读物:
是的。在块完全执行完毕后,将执行递增的
test
。块本身不是异步的,尽管它们经常被异步的API使用。

是的。您甚至可以通过调用
dispatch\u sync
dispatch\u async
让它在不同的线程上运行

dispatch\u sync
表示块在另一个线程上运行,而当前线程等待块完成

dispatch\u async
将块发送到另一个线程,当前线程继续