私はiOSでVoIPハンドセットアプリケーションを構築しています(PJSIPライブラリを使用)。PJSIPでは、スレッドセーフの目的で、それにアクセスして構成を管理するスレッドを登録する必要があります。つまり、そのライブラリへの呼び出しの処理または管理はGCDで処理できず、メインスレッド上にあるか(問題がある場合はブロックされ、UIが描画されないため、ひどい解決策)、または独自の専用スレッドを作成する必要があります。 。
アプリデリゲートで独自の専用スレッドとrunloopを作成し、それにいくつかのセレクターを実行しましたが、面倒です。現在のセッションへのすべての呼び出しを、起動時に作成するシングルトンオブジェクトにカプセル化し、それらのすべての呼び出しを独自のスレッドで発生させたいと考えています。
Appleのドキュメントは少しまばらなので、このPJSIPインスタンスに登録されたスレッドを管理するためのよりインテリジェントな方法があるかどうかを調べようとしています。地獄、私も考えもしなかったことがあるかもしれません。
技術的な質問だとは思いますが、人々がどのようなアイデアを思いつくのか興味があります。
NSThreadの上に、その特定のスレッドでブロックを実行できるカテゴリをすでに作成しましたが、これは醜い醜いハックです。