2012-03-05 4 views
1

私はカスタムクラスのオブジェクト(NSOperationから継承)を追加したNSOperationQueueを持っています。 "setMaxConcurrentOperationCount"を1に設定しました。NSOperation cancelAllOperationsが操作をキャンセルするのに時間がかかりすぎます

[mOperationQueue cancelAllOperations]。

これらをすべてキャンセルするには約10 -15秒かかることがあります。

NSOperationQueueさは約60〜80の作業(操作)が含まれています。

は当初、私は明らかにメインスレッドをブロックされたが、今私は別の私の主な問題は、それは時間がかかりすぎるということであるthread.Butことを行っているメインスレッドでの操作をキャンセルされました。 提案がありますか?

答えて

1

あなたの操作は、それが(例えば-mainの実装で)より頻繁にキャンセルされますかどうかを確認する必要があります。その向こう

、すべてのその時間を取っているかを確認するにはサンプラーを実行します。

+0

答えてくれてありがとうしかし、私は「メイン」が唯一のターンのチェックにNSOperationがそのようにキャンセルされていない場合は、チェックの必要性が本当にそこで見ている「開始」後に呼び出されると思います。 ? – Suny

+0

@Sunyそれはすべての時間を取っていることに依存します。 '-main'のチェックは、操作が完了するまでに時間がかかり、' -main'をきれいに終了することができます。 – justin

関連する問題