【发布时间】:2013-08-30 09:26:33
【问题描述】:
有一段代码使用 CFHostStartInfoResolution() 进行 DNS 查找。然而,这是同步的,因此在它返回之前会阻止任何东西 - 这很糟糕,我还认为它会在连接较弱时由于超时而导致崩溃(当它不好时,它会直接安全失败)
所以我想异步执行此操作,因为它应该在文档 https://developer.apple.com/library/ios/documentation/CoreFoundation/Reference/CFHostRef/Reference/reference.html 新文档 URL 20190227:https://developer.apple.com/documentation/cfnetwork/cfhostref
具体来说:
如果要异步解析主机。调用 CFHostSetClient 关联您的客户端上下文和用户定义的回调函数 与主人。然后调用 CFHostScheduleWithRunLoop 来调度 在运行循环中托管。
但这让我很反感,因为我已经很久没有编写 C 代码了,也无法正确地获得回调和运行循环/线程。
我应该如何调用 CFHostSetClient、CFHostScheduleWithRunLoop,以及如何实现这些回调?我需要开始一个新线程吗?
【问题讨论】:
-
这让我朝着正确的方向前进:stackoverflow.com/q/16570001/129202
标签: ios multithreading asynchronous dns