Jak zaimplementować bezczynne zadanie w Java Swing

Mam aplikację GUI, która staje się dość wolna. Chcę rozpocząć wprowadzanie odmierzania czasu dla różnych zadań GUI - jednak wiele z naszych akcji GUI wyzwala inne akcje, które następnie „wywołują później”, aby wywołać inne działania.

Ostatecznie wszystko się uspokaja i nie ma już nic więcej do roboty. W tej chwili chcę zatrzymać timer i zgłosić, jak długo trwała „akcja” GUI.

Pomyślałem, że sposobem na to jest zaimplementowanie metody o nazwieinvokeOnceIdle(Runnable task). Metoda wykona dostarczone zadanie tylko wtedy, gdy AWTEventQueue jest „pusta”. tj. dostarczone „zadanie” powinno być ostatnią rzeczą w kolejce.

Jednym ze sposobów na to jest, jeśli istnieje sposób na określenie „najniższego” priorytetuSwingUtilities.invokeLater - ale to nie jest możliwe.

Następnie sprawdziłem, czy mogę „wywołać Later” Runnable, który sprawdza, czy kolejka zdarzeń jest „pusta” - ale nie ma publicznego sposobu sprawdzenia, czy kolejka zdarzeń jest rzeczywiście pusta.

Jak najlepiej to zrobić?

questionAnswers(2)

yourAnswerToTheQuestion