These are CLR-level issues. The first basically comes down to the fact that there's really no way to enumerate the handlers which have already been added to an event. As for the second, there is no contract that defines the order on which the handler will be called. But I suspect that the default implementation of an event -- which corresponds to just declaring "public event EventHandler MyEvent;" in C# -- would probably give consistent in-order results.
On Mon, Jun 7, 2010 at 1:26 PM, Ken MacDonald <drken...@gmail.com> wrote: > Hi, > I've got a whole stack of event handlers, assigned via the usual something > like.... > > my_button.Click += button_was_clicked > > As it turns out, the initialization for the thing that has all these > handlers may need to be run several times, and it seems like I ended up with > multiple copies of the same event handler, and "button_was_clicked()" now > gets invoked multiple times for EACH time I click my_button. It seems to be > solved by just skipping the handler assignment if I've already done it > before, but it seems odd that the same EH would be assigned and fired twice. > Is this really what I'm seeing? I can see a case for assigning multiple * > different* EH's: > > my_button.Click += event_handler_1 > my_button.Click += event_handler_2 > > but then this begs the question, is there a defined order in which the EH's > will fire? I looked thru multiple python/IronPython books and googled, but > came up empty on both questions..... Hopefully someone here understands > these things better than I do.... > Ken > > _______________________________________________ > Users mailing list > Users@lists.ironpython.com > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > >
_______________________________________________ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com