バックグラウンド・スレッドでNSTimerを作成するには?
2023-10-28 04:10:24
質問
1秒ごとに実行する必要のあるタスクがあります。 現在、私はNSTimerを1秒ごとに繰り返し発射しています。 バックグラウンドスレッド (非UIスレッド) でタイマーを起動させるにはどうすればよいですか。
メインスレッドで NSTimer を起動させ、NSBlockOperation を使用してバックグラウンドスレッドをディスパッチすることができましたが、これを行うより効率的な方法があるかどうか疑問に思っています。
どのように解決するのですか?
タイマーは、すでに実行されているバックグラウンドのスレッドで動作する実行ループにインストールする必要があります。そのスレッドは、タイマーを実際に起動させるために、実行ループを実行し続ける必要があります。また、そのバックグラウンド スレッドが他のタイマー イベントを起動し続けられるようにするには、とにかく実際にイベントを処理するために新しいスレッドを生成する必要があります (もちろん、行っている処理にかなりの時間がかかると仮定して)。
その価値があるかどうかは別として、Grand Central Dispatch を使用して新しいスレッドを生成してタイマー イベントを処理するか、または
NSBlockOperation
を使用して新しいスレッドを生成してタイマー イベントを処理することは、メイン スレッドの完全に合理的な使用方法だと思います。
関連
-
[解決済み] Objective-Cでデリゲートを作成するにはどうしたらいいですか?
-
[解決済み] NSTimerの使い方を教えてください。
-
[解決済み] NSPredicate: NSDateプロパティの日によるオブジェクトのフィルタリング
-
[解決済み] カレントスレッドがメインスレッドであるかどうかをチェックする
-
[解決済み] performSelectorの使用: メソッドを呼び出すだけと比較した場合
-
[解決済み] Info.plistのCFBundleVersionのアップロードエラー
-
[解決済み] 「アプリケーションはアクティブなコントローラを表示しようとした」?
-
[解決済み] AppDelegateからストーリーボード上の異なる場所で条件付きで開始する。
-
[解決済み] Swiftの変数はアトミックか?
-
[解決済み] MKMapViewのアノテーションをすべて削除する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] RootViewControllerのスイッチングアニメーション
-
[解決済み] ARCを使用する場合、deallocでプロパティをnilに設定するのですか?
-
[解決済み] NSDefaultRunLoopModeとNSRunLoopCommonModesの比較
-
[解決済み] インスタンスメッセージの受信型'CALayer'は前方宣言である」とはどういう意味か?
-
[解決済み] 別のUIViewの下にあるUIViewとのインタラクションを許可する
-
[解決済み] Swiftの変数はアトミックか?
-
[解決済み] 宣言されたプロパティは、対応するインスタンス変数を必要としますか?
-
[解決済み] MKMapViewのアノテーションをすべて削除する方法
-
[解決済み] ARCはディスパッチキューをサポートしていますか?
-
[解決済み] CocoaでperformSelector:withObject:afterDelay:をプリミティブ型で使用する方法は?