我正在编写一些 iOS 代码,我注意到当我在“touchevent”回调中写入顶点数组使用的内存时偶尔会出现错误(内存访问冲突)。
我相信触摸事件是在一个单独的线程上发生的,因此,如果 touchevents 导致顶点数组发生变化,我将需要排队一条消息,该消息将由主线程接收线程(完成所有渲染)对顶点数组进行所需的更改。
根除对写入显存的函数的所有调用应该相当容易。但是,为了安全起见,我想检查某些子例程中我在哪个线程上(主线程与否)(这样错误就不会再次悄悄地重新出现)。
在 iOS 中有没有办法以编程方式检查我在哪个线程(主线程与否)?
最佳答案
以下代码段将记录您是否在主线程上。
NSLog(@"[%@ %@] Is Main Thread? %@",NSStringFromClass([self class]), NSStringFromSelector(_cmd),[NSThread isMainThread]?@"YES":@"NO");
使用这段代码。
[NSThread isMainThread]
回答你的问题
关于ios - 确定是否在 `touch` 回调线程上,ios,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13734180/