1

私はいくつかの iOS コードを書いていますが、'touchevent' コールバック (メモリ アクセス違反) で頂点配列によって使用されるメモリを書き込むと、時折エラーが発生することに気付きました。

タッチ イベントは別のスレッドで発生すると考えているため、タッチイベントによって頂点配列が変更された場合は、メイン スレッド (すべてのレンダリングを行う) によって取得されるメッセージをキューに入れる必要があります。頂点配列に必要な変更。

グラフィックス メモリに書き込む関数のすべての呼び出しを根絶するのはかなり簡単です。ただし、安全のために、特定のサブルーチンで現在使用しているスレッド (メインスレッドかどうか) を確認したいと思います (そのため、バグが知らぬ間に再び侵入することはありません)。

iOS で現在のスレッド(メインスレッドかどうか) をプログラムで確認する方法はありますか?

4

1 に答える 1

2

次のスニペットは、メイン スレッドを使用しているかどうかを記録します。

NSLog(@"[%@ %@] Is Main Thread? %@",NSStringFromClass([self class]), NSStringFromSelector(_cmd),[NSThread isMainThread]?@"YES":@"NO"); 

このコードで。

[NSThread isMainThread]

あなたの質問に答える

于 2012-12-06T00:41:04.920 に答える