<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: A Type-safe BackgroundWorker Wrapper</title>
	<atom:link href="http://thevalerios.net/matt/2008/05/a-type-safe-backgroundworker-wrapper/feed/" rel="self" type="application/rss+xml" />
	<link>http://thevalerios.net/matt/2008/05/a-type-safe-backgroundworker-wrapper/</link>
	<description>Just another WordPress weblog</description>
	<pubDate>Tue, 06 Jan 2009 22:19:23 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
		<item>
		<title>By: Quantum Bit Designs &#187; Blog Archive &#187; DelegateMarshaler - Replace Control.InvokeRequired and Control.Invoke</title>
		<link>http://thevalerios.net/matt/2008/05/a-type-safe-backgroundworker-wrapper/#comment-90</link>
		<dc:creator>Quantum Bit Designs &#187; Blog Archive &#187; DelegateMarshaler - Replace Control.InvokeRequired and Control.Invoke</dc:creator>
		<pubDate>Wed, 25 Jun 2008 03:04:34 +0000</pubDate>
		<guid isPermaLink="false">http://thevalerios.net/matt/?p=18#comment-90</guid>
		<description>[...] Linkshttp://thevalerios.net/matt/2008/05/a-type-safe-backgroundworker-wrapper/ http://weblogs.asp.net/justin_rogers/articles/126345.aspx [...]</description>
		<content:encoded><![CDATA[<p>[...] Linkshttp://thevalerios.net/matt/2008/05/a-type-safe-backgroundworker-wrapper/ <a href="http://weblogs.asp.net/justin_rogers/articles/126345.aspx" rel="nofollow">http://weblogs.asp.net/justin_rogers/articles/126345.aspx</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: valerio.net &#187; Blog Archive &#187; Multithreading and Concurrency in .NET</title>
		<link>http://thevalerios.net/matt/2008/05/a-type-safe-backgroundworker-wrapper/#comment-56</link>
		<dc:creator>valerio.net &#187; Blog Archive &#187; Multithreading and Concurrency in .NET</dc:creator>
		<pubDate>Sat, 14 Jun 2008 19:55:07 +0000</pubDate>
		<guid isPermaLink="false">http://thevalerios.net/matt/?p=18#comment-56</guid>
		<description>[...] A common scenario usually encountered when creating responsive user interfaces (e.g. WinForms applications) is to let a long-running piece of code execute on a background thread and then update the user interface when it completes.&#160; The catch is that the user interface update at the end must be completed on the UI thread.&#160; Thankfully .NET Framework shipped with a BackgroundWorker created explicitly for this task which handles the marshalling between background thread and UI thread automatically.&#160;&#160; It even supports cancellation and can report progress back to the UI thread in addition to notifying the UI thread that it has completed.&#160; This is also discussed in the &#34;Threading in C#&#34; book mentioned above.&#160; In addition, only slight modifications to the BackgroundWorker are needed to use anonymous types as well. [...]</description>
		<content:encoded><![CDATA[<p>[...] A common scenario usually encountered when creating responsive user interfaces (e.g. WinForms applications) is to let a long-running piece of code execute on a background thread and then update the user interface when it completes.&#160; The catch is that the user interface update at the end must be completed on the UI thread.&#160; Thankfully .NET Framework shipped with a BackgroundWorker created explicitly for this task which handles the marshalling between background thread and UI thread automatically.&#160;&#160; It even supports cancellation and can report progress back to the UI thread in addition to notifying the UI thread that it has completed.&#160; This is also discussed in the &quot;Threading in C#&quot; book mentioned above.&#160; In addition, only slight modifications to the BackgroundWorker are needed to use anonymous types as well. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: valerio.net &#187; Blog Archive &#187; A Queued BackgroundWorker Using Anonymous Delegates</title>
		<link>http://thevalerios.net/matt/2008/05/a-type-safe-backgroundworker-wrapper/#comment-20</link>
		<dc:creator>valerio.net &#187; Blog Archive &#187; A Queued BackgroundWorker Using Anonymous Delegates</dc:creator>
		<pubDate>Tue, 20 May 2008 01:49:25 +0000</pubDate>
		<guid isPermaLink="false">http://thevalerios.net/matt/?p=18#comment-20</guid>
		<description>[...] A Type-safe BackgroundWorker Wrapper  [...]</description>
		<content:encoded><![CDATA[<p>[...] A Type-safe BackgroundWorker Wrapper  [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: valerio.net &#187; Blog Archive &#187; Use ThreadPool.QueueUserWorkItem With Anonymous Types</title>
		<link>http://thevalerios.net/matt/2008/05/a-type-safe-backgroundworker-wrapper/#comment-19</link>
		<dc:creator>valerio.net &#187; Blog Archive &#187; Use ThreadPool.QueueUserWorkItem With Anonymous Types</dc:creator>
		<pubDate>Mon, 19 May 2008 21:56:29 +0000</pubDate>
		<guid isPermaLink="false">http://thevalerios.net/matt/?p=18#comment-19</guid>
		<description>[...] A Type-safe BackgroundWorker Wrapper  [...]</description>
		<content:encoded><![CDATA[<p>[...] A Type-safe BackgroundWorker Wrapper  [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Giagnocavo</title>
		<link>http://thevalerios.net/matt/2008/05/a-type-safe-backgroundworker-wrapper/#comment-8</link>
		<dc:creator>Michael Giagnocavo</dc:creator>
		<pubDate>Fri, 16 May 2008 20:12:35 +0000</pubDate>
		<guid isPermaLink="false">http://thevalerios.net/matt/?p=18#comment-8</guid>
		<description>Yes, functional programming excels at user interfaces. It's also great for showing blocking UI while perfoming actions. A lot of our UI code has stuff like this:

ProgressDialog.ShowAction(pd =&#62; {
  // long running code
  pd.Close();
});

This ends up getting nested in a few layers of async stuff, dispatching, error handling and so on. But it's so much easier than the alternatives.</description>
		<content:encoded><![CDATA[<p>Yes, functional programming excels at user interfaces. It&#8217;s also great for showing blocking UI while perfoming actions. A lot of our UI code has stuff like this:</p>
<p>ProgressDialog.ShowAction(pd =&gt; {<br />
  // long running code<br />
  pd.Close();<br />
});</p>
<p>This ends up getting nested in a few layers of async stuff, dispatching, error handling and so on. But it&#8217;s so much easier than the alternatives.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
