Je développe une simulation de file d'attente, en utilisant une minuterie d'oscillation pour déquiler des objets après un certain laps de temps. L'intervalle est déterminé en jetant un coup d'œil à l'objet suivant dans la file d'attente, en en obtenant un entier et en fixant le délai de son temporisateur correspondant.Modification du délai d'une minuterie d'oscillation pendant l'exécution
est ici l'extrait pertinent du programme (Note: _SECONDS_PER_ITEM
est une constante définie ailleurs à 2000
):
// stop the timer
qTimer[q].stop();
// peek at how many items the customer has, and set the delay.
qTimer[q].setDelay(customerQueue[q].peek().getItems()*_SECONDS_PER_ITEM);
// the next time around, this method will see the flag, and dequeue the customer.
working[q] = true;
// denote that the customer is active on the UI.
lblCustomer[q][0].setBorder(new LineBorder(Color.RED, 2));
// start the timer.
qTimer[q].start();
Le problème que j'ai est que chaque client, peu importe le nombre d'articles qu'ils ont, est traité en une seconde.
Y at-il une autre méthode ou technique que je devrais utiliser pour régler le retard?