4

すべてのネットワーク要求を処理するシングルトンNSOperationQueueがあります。ただし、特に長い操作を1つ実行している場合(この特定の操作には少なくとも25秒かかります)、他の操作は完了するまで実行されないことに気付きました。

maxConcurrentOperationCountはNSOperationQueueDefaultMaxConcurrentOperationCountに設定されているため、これが問題になるとは思われません。

これが起こる理由は何ですか?複数のNSOperationQueuesを生成する以外に(うまくいくかどうかも、それが良い考えかどうかもわかりません)、この問題を解決するための最良の方法は何ですか?

ありがとう。

4

1 に答える 1

6

NSOperationQueueクラス参照によると、 NSOperationQueueDefaultMaxConcurrentOperationCount「デフォルトの最大操作数は、現在のシステム条件に基づいてNSOperationQueueオブジェクトによって動的に決定される」ことを意味します。デフォルトが1より大きいことを示すものは何も表示されません(特にシングルCPUシステムの場合)。

-setMaxConcurrentOperationCount:より大きな値を明示的に設定するために呼び出してみて、それが役立つかどうかを確認してください。

于 2010-04-28T03:53:30.257 に答える