dispatch_suspend/dispatch_resume
當(dāng)追加大量處理到Dispatch Queue時(shí),在追加處理的過(guò)程中,有時(shí)希望不執(zhí)行已追加的處理。例如演算結(jié)果被Block截獲時(shí),一些處理會(huì)對(duì)這個(gè)演算結(jié)果造成影響。
在這種情況下,只要掛起Dispatch Queue即可。當(dāng)可以執(zhí)行時(shí)再恢復(fù)。
dispatch_suspend函數(shù)掛起指定的Dispatch Queue。
dispatch_suspend(queue);
dispatch_resume函數(shù)恢復(fù)指定的Dispatch Queue。
dispatch_resume(queue);
這些函數(shù)對(duì)已經(jīng)執(zhí)行的處理沒(méi)有影響。掛起后,追加到Dispatch Queue中但尚未執(zhí)行的處理在此之后停止執(zhí)行。而恢復(fù)則使這些處理能夠繼續(xù)執(zhí)行。