0

私はディスパッチキューについてもっと学びたいと思っています。以下のコードのようにディスパッチキューに3つのメソッドを置くと、1つずつ実行するのか、またはすべてをすぐに実行するのでしょうか?複数のメソッドを持つディスパッチキュー? iPhone

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); 
dispatch_async(queue,^{ 

    [activeModel release]; 
    [mainViewController showSceneList]; 
    [mainViewController removeTidyUpScreen]; 

}); 

前のものが完了するまで、次のものが実行されないように指定するにはどうすればよいですか?

答えて

2

あなたがここにあるようにディスパッチキューに送信するコードを匿名関数と考えてください。したがって、ここでブロックしているコードは、同じ呼び出し、1つのメソッド、次の関数などを含む関数を呼び出しているかのように、順番に実行されます。

特定の例では、メインキューではないキューのUIでいくつかの操作を行っているようです。 UIにアクセスできるので、メインキューでUI操作を行う必要があります。代わりにdispatch_get_main_queue()を使用して、そのキューを取得している可能性があります。 UIに触れないバックグラウンドで実行したいものがある場合は、グローバルキューを使用してください。特に、UIを停止させないことが重要です。

関連する問題