1

たとえば、またはをtimerFired使用して以前にセットアップしたときに (タイマー ハンドラー) が呼び出され、ユーザーが画面に触れたときにも呼び出される場合、2 つのハンドラー (タイマー ハンドラーとタッチ イベント ハンドラー) 内のコードで競合状態が発生する可能性がありますか?NSTimerCADisplayLinktouchesBegan

4

1 に答える 1

4

タイマーハンドラーとtouchesBegan両方がメインスレッドで実行されている場合、それらのコードは混在できません(同じスレッド上にあります)。これは正常な状況です。

タイマーがの前後に実行される可能性がある競合状態が存在する可能性がありtouchesBeganますが、同じスレッド上にある場合、それらを同時に実行することはできません。タイマーを別のスレッドの実行ループに接続した場合にのみ、それらは異なるスレッド上にあります(これは非常に珍しいことです)。

于 2012-04-26T20:05:41.560 に答える