public void OnTimedEvent(Object source, EventArgs e) { int i = -1; Application.Current.Dispatcher.BeginInvoke((Action) delegate { if (synchron == true) { num_text.Text = (T - 1).ToString(); } Derl.Add(""); derlo.Text = Derl[Convert.ToInt32(num_text.Text)]; text.Text = T++.ToString(); ColorAnimation myColorAnimation = new ColorAnimation(); //myColorAnimation.From = Colors.Cyan; Random r = new Random(); timeclr.R = (byte)r.Next(0, 50); timeclr.G = (byte)r.Next(150, 256); timeclr.B = (byte)r.Next(120, 200); myColorAnimation.To = Color.FromRgb(timeclr.R, timeclr.G, timeclr.B); myColorAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(3000)); // DoubleAnimation db2 = new DoubleAnimation(0, 50, TimeSpan.FromMilliseconds(2000)); timeE.BeginAnimation(Ellipse.StrokeThicknessProperty, db2); // Apply the animation to the brush's Color property. timeE.Stroke.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation); // ColorAnimation textanime = new ColorAnimation(Colors.Black, Colors.White, TimeSpan.FromMilliseconds(1000)); DoubleAnimation db = new DoubleAnimation((mem.capacite - mem.calcul_esplibre()) * 100 / mem.capacite / 2, TimeSpan.FromMilliseconds(1000)); taille_lib.Text = (mem.calcul_esplibre() * 100 / mem.capacite).ToString() + "%"; esp_libre.BeginAnimation(Ellipse.StrokeThicknessProperty, db); // DoubleAnimation db1 = new DoubleAnimation(100 - pro.calcul_en_cours(), TimeSpan.FromMilliseconds(1000)); cours.BeginAnimation(Rectangle.HeightProperty, db1); en_courstext.Text = pro.en_cours.Count.ToString(); Canvas.SetTop(en_courstext, 135 - pro.calcul_en_cours()); //les state de la fifo DoubleAnimation db3 = new DoubleAnimation(100 - pro.calcul_fifo(), TimeSpan.FromMilliseconds(1000)); hover.BeginAnimation(Rectangle.HeightProperty, db3); fifotext.Text = pro.fifo.Count.ToString(); Canvas.SetTop(fifotext, 135 - pro.calcul_fifo()); // DoubleAnimation db4 = new DoubleAnimation(100 - pro.calcul_finis(), TimeSpan.FromMilliseconds(1000)); finishov.BeginAnimation(Rectangle.HeightProperty, db4); finistext.Text = pro.get_finis().ToString(); Canvas.SetTop(finistext, 135 - pro.calcul_finis()); }); Application.Current.Dispatcher.Invoke((Action) delegate { ram1.Children.Clear(); Sta.Children.Clear(); }); string d = ""; while (true) { i++; if (i >= pro.en_cours.Count) { break; } pro.en_cours[i].Set_time(pro.en_cours[i].Get_temps() - 1); if (pro.en_cours[i].Get_temps() == 0) { Derl[T - 1] += ">>>> le processus <" + pro.en_cours[i].name + "> est libere de lemplacement<" + pro.en_cours[i].Get_part() + ">\n\n"; pro.corriger_prt(pro.en_cours[i].Get_part(), mem.Liberation_part(pro.en_cours[i].Get_part())); pro.finish(pro.en_cours[i].Get_id()); pro.check_fifo(mem, ref d, P); Derl[T - 1] += d; i--; } } Application.Current.Dispatcher.Invoke((Action) delegate { mem.afficher(ram1, pro); pro.afficher_fifo(ram1); pro.afficher_encours(Sta, param); }); }