<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.eqqon.com/skins/common/feed.css?270"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.eqqon.com/index.php?action=history&amp;feed=atom&amp;title=Asynchronous_Events</id>
		<title>Asynchronous Events - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://www.eqqon.com/index.php?action=history&amp;feed=atom&amp;title=Asynchronous_Events"/>
		<link rel="alternate" type="text/html" href="http://www.eqqon.com/index.php?title=Asynchronous_Events&amp;action=history"/>
		<updated>2026-04-26T16:08:33Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.16.0</generator>

	<entry>
		<id>http://www.eqqon.com/index.php?title=Asynchronous_Events&amp;diff=505&amp;oldid=prev</id>
		<title>Henon: /* Decoupling Threads via Asynchronous Events */</title>
		<link rel="alternate" type="text/html" href="http://www.eqqon.com/index.php?title=Asynchronous_Events&amp;diff=505&amp;oldid=prev"/>
				<updated>2008-01-05T20:20:05Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Decoupling Threads via Asynchronous Events&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 20:20, 5 January 2008&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;= Decoupling Threads via Asynchronous Events =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;= Decoupling Threads via Asynchronous Events &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;in C# &lt;/ins&gt;=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Sometimes it is necessary to fire events without having to wait for them to return. A ''publisher'' (an object that exposes events) might run in a real-time thread which must not be delayed by ''subscriber's'' execution times. In such a case we need to asynchronously fire an event. Creating a new thread for each event is usually not desired due to efficiency reasons. We present '''SimpleAsyncPublisher''', a very simple solution, which queues all events to be published asynchronously and fires them off on a dedicated thread. SimpleAsyncPublisher runs only one thread (instead of a thread-pool) which means that all queued events will have to wait until the previous events have returned. The obvious advantage of this behavior is that subsequently fired events do not interfere with each other. A disadvantage with long running event handlers might be, that the queue could overflow. However, if events are sent only sporadically and the subscriber's event handlers don't exercise any expensive computations SimpleAsyncPublisher is feasible.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Sometimes it is necessary to fire events without having to wait for them to return. A ''publisher'' (an object that exposes events) might run in a real-time thread which must not be delayed by ''subscriber's'' execution times. In such a case we need to asynchronously fire an event. Creating a new thread for each event is usually not desired due to efficiency reasons. We present '''SimpleAsyncPublisher''', a very simple solution, which queues all events to be published asynchronously and fires them off on a dedicated thread. SimpleAsyncPublisher runs only one thread (instead of a thread-pool) which means that all queued events will have to wait until the previous events have returned. The obvious advantage of this behavior is that subsequently fired events do not interfere with each other. A disadvantage with long running event handlers might be, that the queue could overflow. However, if events are sent only sporadically and the subscriber's event handlers don't exercise any expensive computations SimpleAsyncPublisher is feasible.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikidb_eqqon_pub:diff:version:1.11a:oldid:496:newid:505 --&gt;
&lt;/table&gt;</summary>
		<author><name>Henon</name></author>	</entry>

	<entry>
		<id>http://www.eqqon.com/index.php?title=Asynchronous_Events&amp;diff=496&amp;oldid=prev</id>
		<title>Henon: /* Simple Async Publisher */</title>
		<link rel="alternate" type="text/html" href="http://www.eqqon.com/index.php?title=Asynchronous_Events&amp;diff=496&amp;oldid=prev"/>
				<updated>2007-12-19T23:15:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Simple Async Publisher&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 23:15, 19 December 2007&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Sometimes it is necessary to fire events without having to wait for them to return. A ''publisher'' (an object that exposes events) might run in a real-time thread which must not be delayed by ''subscriber's'' execution times. In such a case we need to asynchronously fire an event. Creating a new thread for each event is usually not desired due to efficiency reasons. We present '''SimpleAsyncPublisher''', a very simple solution, which queues all events to be published asynchronously and fires them off on a dedicated thread. SimpleAsyncPublisher runs only one thread (instead of a thread-pool) which means that all queued events will have to wait until the previous events have returned. The obvious advantage of this behavior is that subsequently fired events do not interfere with each other. A disadvantage with long running event handlers might be, that the queue could overflow. However, if events are sent only sporadically and the subscriber's event handlers don't exercise any expensive computations SimpleAsyncPublisher is feasible.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Sometimes it is necessary to fire events without having to wait for them to return. A ''publisher'' (an object that exposes events) might run in a real-time thread which must not be delayed by ''subscriber's'' execution times. In such a case we need to asynchronously fire an event. Creating a new thread for each event is usually not desired due to efficiency reasons. We present '''SimpleAsyncPublisher''', a very simple solution, which queues all events to be published asynchronously and fires them off on a dedicated thread. SimpleAsyncPublisher runs only one thread (instead of a thread-pool) which means that all queued events will have to wait until the previous events have returned. The obvious advantage of this behavior is that subsequently fired events do not interfere with each other. A disadvantage with long running event handlers might be, that the queue could overflow. However, if events are sent only sporadically and the subscriber's event handlers don't exercise any expensive computations SimpleAsyncPublisher is feasible.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Simple Async Publisher &lt;/del&gt;==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;class SimpleAsyncPublisher &lt;/ins&gt;==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;using&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;System&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;using&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;System&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikidb_eqqon_pub:diff:version:1.11a:oldid:495:newid:496 --&gt;
&lt;/table&gt;</summary>
		<author><name>Henon</name></author>	</entry>

	<entry>
		<id>http://www.eqqon.com/index.php?title=Asynchronous_Events&amp;diff=495&amp;oldid=prev</id>
		<title>Henon: New page: = Decoupling Threads via Asynchronous Events =  Sometimes it is necessary to fire events without having to wait for them to return. A ''publisher'' (an object that exposes events) might ru...</title>
		<link rel="alternate" type="text/html" href="http://www.eqqon.com/index.php?title=Asynchronous_Events&amp;diff=495&amp;oldid=prev"/>
				<updated>2007-12-19T23:14:55Z</updated>
		
		<summary type="html">&lt;p&gt;New page: = Decoupling Threads via Asynchronous Events =  Sometimes it is necessary to fire events without having to wait for them to return. A &amp;#39;&amp;#39;publisher&amp;#39;&amp;#39; (an object that exposes events) might ru...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Decoupling Threads via Asynchronous Events =&lt;br /&gt;
&lt;br /&gt;
Sometimes it is necessary to fire events without having to wait for them to return. A ''publisher'' (an object that exposes events) might run in a real-time thread which must not be delayed by ''subscriber's'' execution times. In such a case we need to asynchronously fire an event. Creating a new thread for each event is usually not desired due to efficiency reasons. We present '''SimpleAsyncPublisher''', a very simple solution, which queues all events to be published asynchronously and fires them off on a dedicated thread. SimpleAsyncPublisher runs only one thread (instead of a thread-pool) which means that all queued events will have to wait until the previous events have returned. The obvious advantage of this behavior is that subsequently fired events do not interfere with each other. A disadvantage with long running event handlers might be, that the queue could overflow. However, if events are sent only sporadically and the subscriber's event handlers don't exercise any expensive computations SimpleAsyncPublisher is feasible.&lt;br /&gt;
&lt;br /&gt;
== Simple Async Publisher ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;using&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;System&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;using&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;System&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Collections&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Generic&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;using&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;System&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Text&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;using&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;System&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Threading&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;namespace&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;eqqon&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;{&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;public&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;class&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;SimpleAsyncPublisher&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;:&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;IDisposable&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;{&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;bool&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;m_abort&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;false&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;AutoResetEvent&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;m_waithandle&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;Queue&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;&amp;amp;lt;&amp;lt;/span&amp;gt;ICommand&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;&amp;amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;m_queue&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;Thread&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;m_thread&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;public&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;event&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;Action&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;&amp;amp;lt;&amp;lt;/span&amp;gt;Exception&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;&amp;amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;InvocationFailed&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;public&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;SimpleAsyncPublisher&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;()&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;{&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;m_queue&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;new&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;Queue&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;&amp;amp;lt;&amp;lt;/span&amp;gt;ICommand&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;&amp;amp;gt;();&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;m_waithandle&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;new&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;AutoResetEvent&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;false&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;);&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;m_thread&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;new&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;Thread&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;new&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;ThreadStart&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;ThreadLoop&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;));&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;m_thread&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Start&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;();&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S2&amp;quot;&amp;gt;// Asynchronously call the given event&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;public&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;Publish&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;MulticastDelegate&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;d&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;,&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;params&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;object&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;[]&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;args&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;{&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;Publish&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;new&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;MulticastCommand&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;d&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;,&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;args&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;));&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;public&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;Publish&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;ICommand&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;cmd&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;{&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;m_queue&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Enqueue&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;cmd&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;);&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;m_waithandle&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Set&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;();&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;public&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;Dispose&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;()&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;{&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;m_abort&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;true&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;m_waithandle&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Set&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;();&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;private&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;ThreadLoop&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;()&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;{&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;while&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(!&amp;lt;/span&amp;gt;m_abort&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;{&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;m_waithandle&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;WaitOne&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;();&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;m_abort&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;Thread&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;CurrentThread&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Abort&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;();&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;while&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;m_queue&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Count&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;&amp;amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S4&amp;quot;&amp;gt;0&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;Send&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;m_queue&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Dequeue&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;());&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;private&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;Send&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;ICommand&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;command&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;{&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;try&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;{&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;command&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Send&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;();&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;catch&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;Exception&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;e&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;{&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;InvocationFailed&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;!=&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;null&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;InvocationFailed&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;e&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;);&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;throw&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;public&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;interface&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;ICommand&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;{&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;Send&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;();&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S2&amp;quot;&amp;gt;// Command holds a delegate and its parameters, ready to be call.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;public&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;class&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;MulticastCommand&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;:&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;ICommand&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;{&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;MulticastDelegate&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;m_delegate&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;object&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;[]&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;m_arguments&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;public&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;MulticastCommand&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;MulticastDelegate&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;d&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;,&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;params&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;object&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;[]&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;args&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;{&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;d&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;==&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;null&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;throw&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;new&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;ArgumentException&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S6&amp;quot;&amp;gt;&amp;quot;Delegate must not be null!&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;,&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S6&amp;quot;&amp;gt;&amp;quot;d&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;);&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;m_delegate&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;d&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;m_arguments&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;args&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;public&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;Send&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;()&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;{&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;foreach&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;Delegate&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;d&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;in&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;m_delegate&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;GetInvocationList&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;())&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;d&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Method&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Invoke&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;d&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Target&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;,&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;m_arguments&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;);&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Test program and output ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;using&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;System&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;using&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;System&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Collections&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Generic&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;using&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;System&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Text&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;using&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;System&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Threading&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;namespace&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;eqqon&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;{&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;class&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;Program&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;{&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;public&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;static&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;TestMethod1&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;string&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;s&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;{&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;Thread&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Sleep&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S4&amp;quot;&amp;gt;100&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;);&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;Console&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;WriteLine&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S6&amp;quot;&amp;gt;&amp;quot;TestMethod1:&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;+&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;s&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;);&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;public&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;static&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;TestMethod2&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;string&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;s&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;{&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;Thread&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Sleep&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S4&amp;quot;&amp;gt;100&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;);&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;Console&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;WriteLine&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S6&amp;quot;&amp;gt;&amp;quot;TestMethod2:&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;+&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;s&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;);&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;public&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;static&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;TestMethod3&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;string&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;s&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;{&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;Thread&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Sleep&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S4&amp;quot;&amp;gt;100&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;);&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;Console&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;WriteLine&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S6&amp;quot;&amp;gt;&amp;quot;TestMethod3:&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;+&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;s&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;);&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;public&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;static&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;event&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;Action&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;&amp;amp;lt;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;string&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;&amp;amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;TestEvent1&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;public&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;static&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;event&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;Action&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;&amp;amp;lt;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;string&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;&amp;amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;TestEvent2&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;static&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;Main&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;string&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;[]&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;args&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;{&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;TestEvent1&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;+=&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;TestMethod1&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;TestEvent1&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;+=&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;TestMethod2&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;TestEvent2&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;+=&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;TestMethod3&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;using&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;SimpleAsyncPublisher&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;publisher&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S5&amp;quot;&amp;gt;new&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;SimpleAsyncPublisher&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;())&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;{&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;Console&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;WriteLine&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S6&amp;quot;&amp;gt;&amp;quot;Publishing async event TestEvent1&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;);&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;publisher&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Publish&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;TestEvent1&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;,&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S6&amp;quot;&amp;gt;&amp;quot;Hello&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;);&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;Console&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;WriteLine&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S6&amp;quot;&amp;gt;&amp;quot;Publishing async event TestEvent2&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;);&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;publisher&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;Publish&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;TestEvent2&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;,&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S6&amp;quot;&amp;gt;&amp;quot;World!&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;);&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;Console&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;WriteLine&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S6&amp;quot;&amp;gt;&amp;quot;Done.&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;);&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;Console&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;ReadLine&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;();&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S10&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;S0&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Output&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Publishing async event TestEvent1&lt;br /&gt;
Publishing async event TestEvent2&lt;br /&gt;
Done.&lt;br /&gt;
TestMethod1:Hello&lt;br /&gt;
TestMethod2:Hello&lt;br /&gt;
TestMethod3:World!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--[[User:Henon|Henon]] 00:14, 20 December 2007 (CET)&lt;/div&gt;</summary>
		<author><name>Henon</name></author>	</entry>

	</feed>