I find myself doing this sort of thing quite often:-
EventHandler eh = null; //can\'t assign lambda directly since it uses eh
eh = (s, args) =>
{
//s
You probably want to work with the new async/await idioms. Usually when I need to execute an event handler one-shot like you described, what I really need is something like:
await variableOfSomeSort.SomeMethodAsync();
//small snippet of code here
Does it work? If so, then I say go for it. For a one-shot event that looks to be quite elegant.
What I like...
You might be able to generalize it, but I'm not entierly sure how to because I can't seem to get a pointer to a event.