public Task RaiseHandler(AsyncEventHandler handler) { if (handler is AsyncEventActionHandler h) { return(h.Raise()); } else if (handler is AsyncEventTaskHandler t) { return(t.Raise()); } else { return(Task.CompletedTask); } }
Task RaiseHandler(AsyncEventHandler handler, TArg arg) { if (handler is AsyncEventActionHandler h) { return(h.Raise()); } else if (handler is AsyncEventTaskHandler t) { return(t.Raise()); } else if (handler is AsyncEventActionHandler <TArg> ha) { return(ha.Raise(arg)); } else if (handler is AsyncEventTaskHandler <TArg> aa) { return(aa.Raise(arg)); } else { return(Task.CompletedTask); } }
internal void RemoveHandler <TActionFunction>(AsyncEventHandler handler) { lock (Handlers) Handlers.Remove(handler); }