ホーム>source

バックグラウンドで動いているユーザーのアクションでスレッド操作を一時停止したい。私は NSTimer を使いましたスレッドを一時停止しますが、一時停止ボタンを押すとすべてのプログラム(画面)がフリーズし、ボタンを押すことができません。

<前>ウィズウィズ NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(calculationOfPIValue) userInfo:nil repeats:YES];
あなたの答え
  • 解決した方法 # 1

    あなたが何をしたいのかを正しく理解していたかどうかわかりません。

    バックグラウンドスレッドがあります( NSThread で実行しています) ?ウィズウィズ ?ウィズウィズ ?)。

    したがって、PI計算をバックグラウンドで実行してキャンセルできるようにするには、 NSOperation を使用できます 。

    したがって、 GCD という新しいクラスを作成します。  そしてタイプ:

    <前>ウィズウィズ

    詳細については、http://nshipster.com/nsoperation/を参照してください。

    コントローラーでは、どこかで操作を開始する必要があります。いつ開始するかわからないため、以下は一例です。

    <前>ウィズウィズ NSOperation

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ typescript - 角度CLIでビルドエラーを取得:ブロックスコープの変数 'ngDevMode'を再宣言できません