スキップしてメイン コンテンツに移動

Dispatch

Objective-C

メインスレッドを止めないためにdispatch_asyncを使ってネットワーク処理をバックグラウンドで行っていた。
ネットワーク処理が完了次第メインスレッドでUIを変更するのが普通だが誤ってバックグラウンド側でUIをいじる処理を書いたら、
iPhone5 iOS6ではスクロールするたびにステータスバーがチカチカしておかしくなった。
当然だけどUIをいじったりする処理はメインスレッドでやろうって話。

//バックグラウンド処理
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
  //ネットワークとかの重い処理を書く
  //ここにUIをいじる処理を書いた事によってステータスバーがチカチカしたりおかしくなった

  //メインスレッド
  dispatch_async(dispatch_get_main_queue(), ^{
    //本来はここでUIをいじったりする

  });
})

コメント

このブログの人気の投稿

日本に来た 今三週間

四月六日に日本に来た、今三週間になった。 嬉しくなかった、悲しくなかった。 日本の携帯電話のカメラはとてもいいよ、私は今撮影が好きだ、いつも寮に帰る途中で花とか魚とか写真を撮る。これも生活の趣味だ。 滴は綺麗だ 桜が凋んで落ちる 天気がいいとき、自転車に乗って、食材を買った。 自分で料理をつくる、おいしそうでしょう。 昨日清水寺に行った、天気はとても熱いね。日に焼けすぎたので、腕は今赤い。 側に花があるので、赤い清水寺はもっと美しそうだ。 木の色は艶やかだ。