예제 #1
0
 /// <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);
 }
예제 #2
0
 /// <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);
 }