ここでは、1 つのメソッドのヘッダーを投稿します。これは、while ループの前提条件として役に立ちました。
private static final boolean conditionMet (
final boolean isEventDispatchThread
, final List<AWTEvent> pendingEvents
, final AtomicBoolean isDefaultEventQueue
, final AtomicBoolean isEventQueueChanging
, final AtomicReference<DispatchableEventQueue> newEventQueue
, final AtomicReference<ProgressMonitor> processMessageBlocking
, final AtomicInteger actionsRemaining
, final AtomicBoolean interruptAction
, final AtomicReference<Tuple2<IAction, Throwable>> throwableWasThrownFromChain
, final ConcurrentHashMap<IAction, Boolean> valuesReadyToBeSetFromEDT
, final ConcurrentHashMap<IAction, Boolean> valuesWasSetFromEDT
, final ConcurrentHashMap<IAction, Boolean> onSwingReadyToBeRunFromEDT
, final ConcurrentHashMap<IAction, Boolean> onSwingWasActuallyRunFromEDT
, final FlexReference<Map<String, Object>> remoteRef
) throws InterruptedException {
それが良い設計パターンであったかどうかはまだ疑問に思うかもしれませんが、ステートマシンを使用するかどうかにかかわらず、ある場所で物事をよりシンプルに保とうとすると、別の場所でより大きな混乱を招くことはそれほど難しくありません(調子)。私にとっての中間の道は、より高いレベルでのプログラミングであり、可用性や死亡ではなく、これらすべてのタイムアウトを当然のことと考えています。