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
将块发送到另一个线程,当前线程继续