コード例 #1
0
        public void ajoute(ActionDifferee action, PRIORITE priorite = PRIORITE.MOYENNE)
        {
            action.dansLaQueue();
            lock (_actions)
            {
                int indice = 0;
                while (indice < _actions.Count)
                {
                    if (_actions[indice].priorite < priorite)
                    {
                        break;
                    }
                    indice++;
                }


                ActionPriorite p = new ActionPriorite(priorite, action);
                if (indice < _actions.Count)
                {
                    _actions.Insert(indice, p);
                }
                else
                {
                    _actions.Add(p);
                }
            }

            SetStatusFilmATraiter($"{_actions.Count} actions à traiter");
            if (_bgw == null)
            {
                _bgw = new BackgroundWorker();
                _bgw.WorkerSupportsCancellation = true;
                _bgw.ProgressChanged           += progressChanged;
                _bgw.WorkerReportsProgress      = true;
                _bgw.DoWork += doWork;

                _bgw.RunWorkerAsync();
            }
        }
コード例 #2
0
 public ActionPriorite(PRIORITE p, ActionDifferee a)
 {
     priorite = p;
     action   = a;
 }