我想我怎樣才能確保NSOperations以失敗的方式執行?
我在我的應用程序有一個NSOperationQueue是什麼,它的關鍵是應用程序退出之前的所有操作得到處理。我有下面的代碼上退出,以確保NSOperationQueue是空的退出之前:
if ([NSThread isMainThread]) {
while ([[operationQueue operations] count] > 0) {
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.05]];
}
} else {
[operationQueue waitUntilAllOperationsAreFinished];
}
我以前在那裏的的NSOperation「凍結」遇到了一個問題,我的代碼完成之前,並封鎖了整個隊列。顯然,在這樣的情況下,我的代碼應該拋出一個異常,現在就這樣做。
但我仍然想防止任何奇怪的事情發生在操作停止和阻止隊列,導致應用程序永不退出和故障沒有被捕獲。
我的垃圾解決方案
我正在考慮把超時隊列完成它的操作。然後,當它超時時,我可以拋出異常,然後可以捕捉到問題。
但是,這感覺不對。理想情況下,我不想依賴定時器來確保工作完成。
我的問題
有沒有更好的,達不到確保我操作的安全,辦法還沒有凍結?
您的操作以何種方式「凍結」? – 2012-06-07 07:15:06