J'ai un cas où je veux qu'un événement donné s'exécute une fois, et seulement une fois. J'essaie de le faire de cette façon, mais j'ai des prolèmes (sinon je ne le demanderais pas). Notez que le code suivant est à l'intérieur de la fonction qui décide que l'événement doit être déclenché.Faire un feu d'événement C#/wpf une seule fois?
EventHandler h = delegate(Object sender, EventArgs e) {
FiringControl.TheEvent -= h; // <-- Error, use of unassigned local variable "h"
// Do stuff
}
FiringControl.TheEvent += h;
En général, cela devrait fonctionner en raison de la portée est ainsi préservée pour les délégués qu'après qu'ils font courir, mais, depuis h
est en train d'être construit lorsque je tente de l'utiliser, il est toujours considéré comme être "non initialisé", apparemment.
http://stackoverflow.com/questions/1554845/am-i-usage-la-right-approach-to-monitor-the-tasks-i-want-to-perform-when-a-handl/1554978 # 1554978 – Juliet