Можно ли предположить, что абоненты событий вызываются в порядке подписки?
Пример:
void One(object sender, EventArgs e) {}
void Two(object sender, EventArgs e) {}
event EventHandler foo;
foo += One;
foo += Two;
Является ли One() всегда вызываемым до Two() при запуске события?
Edit:
Вы должны, конечно, не полагаться на это, я просто думал. Идея заключалась в том, что делегаты многоадресной передачи аналогичны шаблону COMMAND. Так что мне просто интересно. Усушно вы использовали коллекцию, которая хранит порядок для COMMANDs, чтобы вы могли делать отменить/повторить/что угодно.