背景...
我正在修改Apple的SimplePing示例,以对iPhone应用程序执行ICMP ping操作。该代码将 native 套接字包装在指定读取回调的CFSocket对象中,然后将其作为主线程上的运行循环源添加。将数据包发送到套接字时,将调用回调以计时往返时间,验证内容,更新UI等。
问题...
将此处理移至后台线程以使ping时间尽可能准确的最佳方法是什么?我需要测量调用套接字“sendto”方法与回调调用之间的准确时间,而不会中断。
任何示例或伪代码都将非常有帮助。我已经阅读了很多关于Cocoa中的线程的文章(NSThread与NSOperation,NSRunLoop等),但是到目前为止,我还不能完全将它们拼凑在一起。
谢谢
最佳答案
您需要支持iOS 3.x吗?如果没有,您可以考虑使用Grand Central Dispatch。在这种情况下,您可以将套接字指定为调度队列的源,并为其赋予最高优先级。
关于iphone - 如何在后台线程上运行CFSocket以获得更准确的ping时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4981620/