/// <summary> /// Add operator overwrite /// </summary> /// <param name="e">AsyncEvent instance</param> /// <param name="callback">Callback delegate to add</param> /// <returns>AsyncEvent instance</returns> public static AsyncEvent <TEventArgs> operator +(AsyncEvent <TEventArgs> e, Func <object, TEventArgs, Task> callback) { if (callback == null) { throw new NullReferenceException("callback is null"); } if (e == null) { e = new AsyncEvent <TEventArgs>(); } lock (e._locker) { e._invocationList.Add(callback); e._dirty = true; } return(e); }
/// <summary> /// Add operator overwrite /// </summary> /// <param name="e">AsyncEvent instance</param> /// <param name="callback">Callback delegate to add</param> /// <returns>AsyncEvent instance</returns> public static AsyncEvent <TEventArgs> operator +(AsyncEvent <TEventArgs> e, Func <object, TEventArgs, Task> callback) { if (callback is null) { throw new NullReferenceException("callback is null"); } if (e is null) { e = new AsyncEvent <TEventArgs>(); } lock (e._locker) { if (e._funcsInvocationList is null) { e._funcsInvocationList = new List <Func <object, TEventArgs, Task> >(); } e._funcsInvocationList.Add(callback); e._callFuncArray = e._funcsInvocationList.ToArray(); } return(e); }