You can remove the event handler when it is executed. In fact, any event handler that you add manually should typically also be removed manually (at some point).
void Myevent(object sender, EventArgs e)
Application.Idle -= Myevent;
The only thing that is necessary to be able to remove an handler is that it is an actual function and not a lambda expression.