2010-09-19 11 views

Répondre

1

Je suggère que vous donniez aux objets enfants un événement qui peut être déclenché lorsque le temporisateur est déclenché. La classe Parent peut ensuite attacher un gestionnaire à l'événement de chaque enfant.

Voici un pseudo-code pour vous donner une idée de ce que je veux dire. Je n'ai volontairement pas montré de code WinForms ou Threading, car vous ne donnez pas beaucoup de détails dans ce domaine.

class Parent 
{ 
    List<Child> _children = new List<Child>(); 

    public Parent() 
    { 
    _children.Add(new Child()); 
    _children.Add(new Child()); 
    _children.Add(new Child()); 

    // Add handler to the child event 
    foreach (Child child in _children) 
    { 
     child.TimerFired += Child_TimerFired; 
    } 
    } 

    private void Child_TimerFired(object sender, EventArgs e) 
    { 
    // One of the child timers fired 
    // sender is a reference to the child that fired the event 
    } 
} 

class Child 
{ 
    public event EventHandler TimerFired; 

    protected void OnTimerFired(EventArgs e) 
    {  
    if (TimerFired != null) 
    { 
     TimerFired(this, e); 
    } 
    } 

    // This is the event that is fired by your current timer mechanism 
    private void HandleTimerTick(...) 
    { 
    OnTimerFired(EventArgs.Empty); 
    } 
} 
+0

Merci beaucoup cela a fonctionné parfaitement! – Riina