在Xcode 4 iPad模拟器上,当我做NSThread + setThreadPriority时,检查threadPriority,结果总是0.5,不管我设置什么。 (+ setThreadPriority返回YES /“success”返回码。)
这纯粹是模拟器问题,还是setThreadPriority根本不起作用?
(我试图找到某种方法强制“后台”线程产生CPU - 至少在模拟器上pthread_yield_np似乎不起作用。)
已添加:显然模拟器已经死了。即使在“后台”线程中休眠5秒也不允许主线程运行。 (主线程正在等待@synchronize
锁,并且“后台”线程在“获取锁定实例”代码中,在它有机会实际获得锁定之前。)
(除此之外,叹息,“背景”线程可能有递归锁。我想知道是否有办法测试它?)
添加更多:是的,问题不是无法在模拟器上切换线程,而是这个应用程序在长时间运行的后台线程中有一些递归锁定的事实,以及这些锁定(早期在堆栈中)正在阻止主线程。需要思考。
(但很明显,setThreadPriority 不会 在模拟器上运行。)