サーバー接続からステータスの更新を継続的に読み取るアプリがあります。
すべてが非同期ですべての読み取りと書き込みを処理するストリーム デリゲートでうまく機能しています。
サーバーからの特定の応答を「待機」しているアプリの部分はありません。ソケットから散発的に到着するステータス更新を継続的に処理しているだけです。応答を待っているクライアント側の要求はありません。
この場合、ネットワーク アクティビティ インジケーターのベスト プラクティスはどうなるのだろうと思っています。
ストリーム イベント ハンドラーでオンにして、ハンドラーを終了する前にオフにすることもできますが、それは非常に短い時間です (ノンブロッキングの読み取りまたは書き込みが発生するのに十分な時間です)。これを試してみると、インジケータのかすかなちらつきしか見えません。イベント ハンドラーの実行中よりも長くオンにする必要があります。
ストリーム デリゲートでオンにして、タイマーを設定して少し後にオフにするのはどうですか? (これにより、ストリーム デリゲートで費やされる短い時間ではなく、表示されるのに十分な時間が確保されます。)
注: 私はこの最後のアイデアを試しました。次に、タイマー (1 秒ごとに起動した) で、経過時間が 0.5 秒を超える場合、インジケーターをオフにします。これは、ネットワーク アクティビティを合理的に示しているようです。
より良い推奨事項はありますか?