追加大量的处理到Dispatch Queue时,在追加处理的过程中,有时希望不执行已追加的处理。列如演算结果被Block 截获时,一些处理会对这个演算结果造成影响。
在这种情况下,只要挂起Dispatch Queue 即可。当执行是在恢复。
dispatch_suspend 函数挂起指定的dispatch queue。
dispatch_suspend(queue);
dispatch_resume 函数恢复指定的dispatch queue。
dispatch_resume(queue);
这些函数对已经执行的处理没用影响。挂起后,追加到Dispatch Queue 中但尚未执行的处理在此之后停止执行。而恢复则使得这些处理弄够继续执行。