DaTurk, My assumption was that events were, in fact, multicast delegates, and after a little searching, it looks to be confirmed.
http://www.netsplore.com/PublicPortal/blog.aspx?EntryID=9 Additionally, I ran a quick little test. A WinForm app with a single button and a single text box, wherein I added four methods that I then added to the button.Click event: btn.Click += new EventHandler(btn_Click1); btn.Click += new EventHandler(btn_Click2); btn.Click += new EventHandler(btn_Click3); btn.Click += new EventHandler(btn_Click4); In each of the four btn_Click methods, I add which event was fired and the Thread.CurrentThread.ManagedThreadId to the text box. The only difference is that, in btn_Click1, I have a Thread.Sleep(1000). The few above comments seem to think that each delegate invocation of the event is fired in its own thread, but my above test disproves this: the methods are called synchronously, with btn_Click2 not being invoked until btn_Click1 is done sleeping and writing to the textbox. Some additional info from the MSDN multicast delegate definition at http://msdn.microsoft.com/en-us/library/system.multicastdelegate.aspx states the following: "A MulticastDelegate has a linked list of delegates, called an invocation list, consisting of one or more elements. When a multicast delegate is invoked, the delegates in the invocation list are called synchronously in the order in which they appear. If an error occurs during execution of the list then an exception is thrown." This statement coincides with the test I performed and my original assumption. Hope that helps a little. Josh On Apr 26, 5:37 am, DaTurk <[email protected]> wrote: > According to what theory? Could you eleborate on my other questions? > > On Apr 25, 1:43 am, ravindra kumar <[email protected]> wrote: > > > > > > > > > according to theory you are right it should be fired > > > On Sun, Apr 24, 2011 at 8:30 AM, analysis_junky > > <[email protected]>wrote: > > > > Not sure, but that should be easy enough to test. My hypothesis is > > > that thread B would fire even though thread A has called > > > Thread.Sleep(int). > > > > On Apr 21, 12:44 pm, DaTurk <[email protected]> wrote: > > > > I was always under the impression a event was just a multicast delgate > > > > under the hood, is this correct? > > > > > Another question I have is if I have several recipients of an event, > > > > do they get notified sequentually? > > > > > And if they get fired sequentually, do they happen on the same thread? > > > > > The reason I'm asking is if I have an Event with several recipients += > > > > on it, and the first recipient gets notified but holds the thread, say > > > > with a sleep, or a lock, or for any reason ... will this block the > > > > rest of the recipients getting notified? > > > > > Thanks in advance > > > > -- > > > You received this message because you are subscribed to the Google > > > Groups "DotNetDevelopment, VB.NET, C# .NET, ADO.NET, ASP.NET, XML, XML > > > Web Services,.NET Remoting" group. > > > To post to this group, send email to [email protected] > > > To unsubscribe from this group, send email to > > > [email protected] > > > For more options, visit this group at > > >http://groups.google.com/group/dotnetdevelopment?hl=en?hl=en > > > or visit the group website athttp://megasolutions.net > > > -- > > Ravindra kumar > > delhi- Hide quoted text - > > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "DotNetDevelopment, VB.NET, C# .NET, ADO.NET, ASP.NET, XML, XML Web Services,.NET Remoting" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/dotnetdevelopment?hl=en?hl=en or visit the group website at http://megasolutions.net
