2016-07-22 7 views
0

既存のキューに何かを追加することが可能かどうか疑問に思っていました。たとえば、15枚の写真を撮って順番に処理したいとしたら、どのように写真をキューに追加できますか? ?GCDキューに追加

私は現在、このようなものを使用しますので、

dispatch_queue_t photoProcessingQueue; // Declared as IVAR 

photoProcessingQueue = dispatch_queue_create("PROCESSING_QUEUE", NULL); // in ViewDidLoad 

dispatch_async(photoProcessingQueue, ^{ // in Processing Method 
    Processing photos.. 
}); 

私は再びそれを呼び出すときに何が起こるか、キューが写真を処理の途中であれば、私の質問は、あると思いますか?最初のプロセスが完了するまで待ってから、デフォルトで次のプロセスを処理しますか?

答えて

0

この例では、並行キューを作成しています。これは、複数のブロックをエンキューすると、使用可能なリソースに基づいてシステムが決定する上限まで、並列に実行されることを意味します。別のブロックをエンキューすると、それを実行するフリースレッドがあるとすぐに実行されます。

+0

さて、「処理方法」を5回呼び出すと、それは順次実行されますか?それを呼び出すときにキューがすでに処理中であれば問題ありませんか? –

+0

いいえ。並行キューを作成したため、送信されたブロックは並行して実行されます。 – Avi

+0

ああ、それは意味がある..渡されたシーケンス内のメソッドを実行する並行キューを作成することは可能ですか?もしそうなら、そのようなスレッドの定義は何ですか? –

関連する問題