ステータス バー アイテムとして設計された Mac 用のアプリを作成しました。ただし、ユーザーがステータス バーからメニューを開くと、メインの実行ループは閉じられるまでブロックされます。このアプリはソケット上のメッセージに応答するため、メニューが開いている間は何もできないのが問題です。
別のスレッドからステータス項目を設定し、別のスレッドでソケットをスケジュールしようとしましたが、サイコロはありません。これに対処する良い方法はありますか?
アップデート:
これで解決しました。私はNetSocketソケット ラッパーを使用していましたが、その非同期性により、別のスレッドを開いて監視することが非常に困難でした。私はSmallSockets (別の Objective-C ソケット ラッパー) に切り替えました。これは同期であるため、ソケットを開いて別のスレッドで直接監視することができました。