私のアプリには、多くの処理を実行するためのワーカースレッドがあります。処理中は、情報を使用してGUI要素を更新するメインスレッドに更新を送信します。これはで行われperformSelectorOnMainThread
ます。コードを簡単にするために、これらの更新に制限はなく、高速(1秒あたり数百または数千)で送信されwaitUntilDone
ますfalse
。呼び出されるメソッドは、変数を取得して、それをViewControllerのプライベートメンバーにコピーするだけです。それらのいくつかはGUIを直接更新します(私が怠け者だからです!)。数秒に1回、ワーカースレッドはperformSelectorOnMainThread
にwaitUntilDone
設定して呼び出しますtrue
(これは、現在の計算バッチの出力の保存に関連しています)。
私の質問:これは安全な使用法performSelectorOnMainThread
ですか?バックグラウンドスレッドが問題なく動作し続けている(そして正しい出力を生成している)にもかかわらず、表示された値が更新を停止するという問題が最近発生したため、私は尋ねます。このように値が与えられるので、メッセージ数の制限に達したのではないかと思いました。私はすでに通常の容疑者(オーバーフロー、リークなど)をチェックし、すべてがきれいです。しかし、私は問題を再現することができませんでした。