22

アプリの多くの場所で、次のコードを使用してバックグラウンド タスクを実行し、メイン スレッドに通知します。

dispatch_queue_t backgroundQueue = dispatch_queue_create("dispatch_queue_#1", 0);
    dispatch_async(backgroundQueue, ^{

   dispatch_async(dispatch_get_main_queue(), ^{


        });
    });

backgroundQueue を 1 か所に作成して (どこが最適ですか?)、後で使用することはできますか? システムのグローバル キューについては知っていますが、順序付けは重要です。

4

4 に答える 4

1
queue = dispatch_queue_create("com.something.myapp.backgroundQueue", 0);

先行するのは Serial Queue です。並行キューを作成する場合は、DISPATCH_QUEUE_CONCURRENT を使用できます。

iOS 5 以降では、キューの種類として DISPATCH_QUEUE_CONCURRENT を指定することで、同時ディスパッチ キューを自分で作成できます。

dispatch_queue_t queue = dispatch_queue_create("downLoadAGroupPhoto",
                                                   DISPATCH_QUEUE_CONCURRENT);
于 2016-01-21T00:51:56.800 に答える
0

また、NSOperationQueue を使用して操作をプッシュすることもできます。操作が順不同で実行されないようにするために、isConcurrent を NO に設定できます。

于 2013-08-01T17:16:56.573 に答える
-7
  dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                //back ground thread

                 dispatch_async( dispatch_get_main_queue(), ^{
                     // main thread
                      });
                });
于 2015-03-30T07:15:42.527 に答える