私はこの既存のタイマー機能を持っています:
final Timer waveTimer = new Timer() {
@Override
public void run() {
double value = r.getByte(); // takes quite long to finish
wave.renderWaveOnFly(value);
}};
waveTimer.scheduleRepeating(50);
waveTimer.cancel()
ただし、機能しますが、UI は「ブロック」され、UI の一部が10 秒後にこのタイマーをキャンセルする別のタイマーを呼び出すと、タイマーが終了するまで、そのユーザーは UI をクリックして何も実行できません。したがって、UI はそれまでは使えません。
おそらくUIがブロックされておらず、ユーザーがUIで何かを実行できることを確認するためだけに、しばらく一時停止するように非ブロックタイマーを実装する方法はありますか?
つまり、UI はまだ応答性が高いと感じています。
数字についてはわかりませんが、100ミリ秒ごとに停止し、UIに道を譲り、一時停止などの後に100ミリ秒を再開すると言います。どのようなアプローチで対処するかを考えています。