CFHostStartInfoResolution() を使用して DNS ルックアップを行うコードがあります。ただし、これは同期的であるため、返される前にすべてをブロックします-それは悪いことであり、接続が弱い場合にタイムアウトが原因でクラッシュが発生すると思います(悪い場合は直接安全に失敗します)
したがって、ドキュメントで想定されているように、これを非同期で実行したいhttps://developer.apple.com/library/ios/documentation/CoreFoundation/Reference/CFHostRef/Reference/reference.html New docs URL 20190227 : https:/ /developer.apple.com/documentation/cfnetwork/cfhostref
具体的には次のように述べています。
ホストを非同期で解決する場合。CFHostSetClient を呼び出して、クライアント コンテキストとユーザー定義のコールバック関数をホストに関連付けます。次に、CFHostScheduleWithRunLoop を呼び出して、実行ループでホストをスケジュールします。
しかし、私は何年も C をコーディングしておらず、コールバックと実行ループ/スレッドを正しく取得できないため、これは私を先延ばしにしました。
CFHostSetClient、CFHostScheduleWithRunLoop を呼び出すにはどうすればよいですか? また、これらのコールバックを実装するにはどうすればよいですか? 新しいスレッドを開始する必要がありますか?