Почему не работает событие (C#)?
C# это не PHP, тупо начать писать не прочитав ни одной книги не получится.
А вызывать все таки лучше с проверкой подписано ли кто тоif (StateChanged != null)
 StateChanged();