示例#1
0
        /// <summary>
        /// The Event Marshal.
        /// </summary>
        public void EventMarshal(IMyEventActions sender, MyEventArgs e)
        {
            if (null != sender)
            {
                if (sender.Event.InvokeRequired)
                {
                    sender.Event.BeginInvoke(
                        new OnSomethingHappenedDel(sender.OnSomethingHappened),
                        new object[] { e });
                }
                else
                {
                    sender.OnSomethingHappened(e);
                }
            }

            //If you require recursion, you need to do this...
            Recurse(e);
        }
示例#2
0
 /// <summary>
 /// The Event Marshal.
 /// </summary>
 public void EventMarshal(IMyEventActions sender, MyEventArgs e)
 {
     if (sender.Event.InvokeRequired)
     {
         //Without the lock in Fire() a race condition would occur
         //here when one thread closes the MyEvent form and another
         //tries to Invoke it.
         sender.Event.BeginInvoke(
             new OnSomethingHappenedDel(sender.OnSomethingHappened),
             new object[] { e });
     }
     else
     {
         sender.OnSomethingHappened(e);
     }
     if (SiblingEvents.Count > 0)
     {
         Recurs(e);
     }
 }