<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Peter Duniho's C# blog</title><link>http://msmvps.com/blogs/duniho/default.aspx</link><description>One man&amp;#39;s various musings in C#, occasionally useful to others.</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>MSDN's canonical technique for using Control.Invoke is lame</title><link>http://msmvps.com/blogs/duniho/archive/2008/09/12/msdn-s-canonical-technique-for-using-control-invoke-is-lame.aspx</link><pubDate>Fri, 12 Sep 2008 18:36:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1647639</guid><dc:creator>Peter</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/duniho/rsscomments.aspx?PostID=1647639</wfw:commentRss><comments>http://msmvps.com/blogs/duniho/archive/2008/09/12/msdn-s-canonical-technique-for-using-control-invoke-is-lame.aspx#comments</comments><description>I recommend not following MSDN&amp;#39;s promoted pattern for using the Control.Invoke method. It&amp;#39;s inefficient, and since C# 2.0, there&amp;#39;s been a better way....(&lt;a href="http://msmvps.com/blogs/duniho/archive/2008/09/12/msdn-s-canonical-technique-for-using-control-invoke-is-lame.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1647639" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/duniho/archive/tags/Forms/default.aspx">Forms</category><category domain="http://msmvps.com/blogs/duniho/archive/tags/code/default.aspx">code</category><category domain="http://msmvps.com/blogs/duniho/archive/tags/concurrency/default.aspx">concurrency</category></item><item><title>Form-closing race condition (part 2)</title><link>http://msmvps.com/blogs/duniho/archive/2008/09/12/form-closing-race-condition-part-2.aspx</link><pubDate>Fri, 12 Sep 2008 17:05:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1647636</guid><dc:creator>Peter</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/duniho/rsscomments.aspx?PostID=1647636</wfw:commentRss><comments>http://msmvps.com/blogs/duniho/archive/2008/09/12/form-closing-race-condition-part-2.aspx#comments</comments><description>In this post, I continue by describing a technique for taking over the application shutdown process so that all your forms get to run their close-related code....(&lt;a href="http://msmvps.com/blogs/duniho/archive/2008/09/12/form-closing-race-condition-part-2.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1647636" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/duniho/archive/tags/Forms/default.aspx">Forms</category><category domain="http://msmvps.com/blogs/duniho/archive/tags/code/default.aspx">code</category><category domain="http://msmvps.com/blogs/duniho/archive/tags/concurrency/default.aspx">concurrency</category></item><item><title>Form-closing race condition (part 1)</title><link>http://msmvps.com/blogs/duniho/archive/2008/09/12/form-closing-race-condition.aspx</link><pubDate>Fri, 12 Sep 2008 16:44:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1647567</guid><dc:creator>Peter</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/duniho/rsscomments.aspx?PostID=1647567</wfw:commentRss><comments>http://msmvps.com/blogs/duniho/archive/2008/09/12/form-closing-race-condition.aspx#comments</comments><description>In this post, I describe some approaches to dealing with the race condition that occurs when a thread that invokes code on a form instance is terminating at the same time that the form itself is being closed....(&lt;a href="http://msmvps.com/blogs/duniho/archive/2008/09/12/form-closing-race-condition.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1647567" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/duniho/archive/tags/Forms/default.aspx">Forms</category><category domain="http://msmvps.com/blogs/duniho/archive/tags/code/default.aspx">code</category><category domain="http://msmvps.com/blogs/duniho/archive/tags/concurrency/default.aspx">concurrency</category></item><item><title>Basic network programming in .NET (part 3)</title><link>http://msmvps.com/blogs/duniho/archive/2008/08/28/basic-network-programming-in-net-part-3.aspx</link><pubDate>Thu, 28 Aug 2008 16:34:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1646043</guid><dc:creator>Peter</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/duniho/rsscomments.aspx?PostID=1646043</wfw:commentRss><comments>http://msmvps.com/blogs/duniho/archive/2008/08/28/basic-network-programming-in-net-part-3.aspx#comments</comments><description>An example of the most basic implementation one might find of a network application....(&lt;a href="http://msmvps.com/blogs/duniho/archive/2008/08/28/basic-network-programming-in-net-part-3.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1646043" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/duniho/archive/tags/code/default.aspx">code</category><category domain="http://msmvps.com/blogs/duniho/archive/tags/networking/default.aspx">networking</category><category domain="http://msmvps.com/blogs/duniho/archive/tags/basic/default.aspx">basic</category></item><item><title>Basic network programming in .NET (part 2)</title><link>http://msmvps.com/blogs/duniho/archive/2008/08/28/basic-network-programming-in-net-part-2.aspx</link><pubDate>Thu, 28 Aug 2008 07:59:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1646036</guid><dc:creator>Peter</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/duniho/rsscomments.aspx?PostID=1646036</wfw:commentRss><comments>http://msmvps.com/blogs/duniho/archive/2008/08/28/basic-network-programming-in-net-part-2.aspx#comments</comments><description>A brief outline of the structure shared by practically all network applications....(&lt;a href="http://msmvps.com/blogs/duniho/archive/2008/08/28/basic-network-programming-in-net-part-2.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1646036" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/duniho/archive/tags/code/default.aspx">code</category><category domain="http://msmvps.com/blogs/duniho/archive/tags/networking/default.aspx">networking</category><category domain="http://msmvps.com/blogs/duniho/archive/tags/basic/default.aspx">basic</category></item><item><title>Basic network programming in .NET (part 1)</title><link>http://msmvps.com/blogs/duniho/archive/2008/08/19/basic-network-programming-in-net.aspx</link><pubDate>Wed, 20 Aug 2008 01:37:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1645113</guid><dc:creator>Peter</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/duniho/rsscomments.aspx?PostID=1645113</wfw:commentRss><comments>http://msmvps.com/blogs/duniho/archive/2008/08/19/basic-network-programming-in-net.aspx#comments</comments><description>We start our journey through .NET network programming by looking at a couple of important network programming references, and covering a handful of the most important topics/issues that come up when learning to write network code....(&lt;a href="http://msmvps.com/blogs/duniho/archive/2008/08/19/basic-network-programming-in-net.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1645113" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/duniho/archive/tags/code/default.aspx">code</category><category domain="http://msmvps.com/blogs/duniho/archive/tags/networking/default.aspx">networking</category><category domain="http://msmvps.com/blogs/duniho/archive/tags/basic/default.aspx">basic</category></item><item><title>Warming up - a Forms control for receiving text output (part 3)</title><link>http://msmvps.com/blogs/duniho/archive/2008/08/17/warming-up-a-forms-control-for-receiving-text-output-part-3.aspx</link><pubDate>Mon, 18 Aug 2008 02:48:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1644898</guid><dc:creator>Peter</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/duniho/rsscomments.aspx?PostID=1644898</wfw:commentRss><comments>http://msmvps.com/blogs/duniho/archive/2008/08/17/warming-up-a-forms-control-for-receiving-text-output-part-3.aspx#comments</comments><description>Continuing the blogging warm-up, we look at the rendering-to-the-screen part of our SimpleConsole control class....(&lt;a href="http://msmvps.com/blogs/duniho/archive/2008/08/17/warming-up-a-forms-control-for-receiving-text-output-part-3.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1644898" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/duniho/archive/tags/Forms/default.aspx">Forms</category><category domain="http://msmvps.com/blogs/duniho/archive/tags/code/default.aspx">code</category><category domain="http://msmvps.com/blogs/duniho/archive/tags/console/default.aspx">console</category><category domain="http://msmvps.com/blogs/duniho/archive/tags/basic/default.aspx">basic</category></item><item><title>Warming up - a Forms control for receiving text output (part 2)</title><link>http://msmvps.com/blogs/duniho/archive/2008/08/15/warming-up-a-forms-control-for-receiving-text-output-part-2.aspx</link><pubDate>Sat, 16 Aug 2008 04:47:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1644761</guid><dc:creator>Peter</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/duniho/rsscomments.aspx?PostID=1644761</wfw:commentRss><comments>http://msmvps.com/blogs/duniho/archive/2008/08/15/warming-up-a-forms-control-for-receiving-text-output-part-2.aspx#comments</comments><description>In this post, we see what the basic functionality and structure of the SimpleConsole class will be. Then we proceed to the implementation of one of two main features of the class: managing the text buffer....(&lt;a href="http://msmvps.com/blogs/duniho/archive/2008/08/15/warming-up-a-forms-control-for-receiving-text-output-part-2.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1644761" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/duniho/archive/tags/Forms/default.aspx">Forms</category><category domain="http://msmvps.com/blogs/duniho/archive/tags/code/default.aspx">code</category><category domain="http://msmvps.com/blogs/duniho/archive/tags/console/default.aspx">console</category><category domain="http://msmvps.com/blogs/duniho/archive/tags/basic/default.aspx">basic</category></item><item><title>Warming up - a Forms control for receiving text output (part 1)</title><link>http://msmvps.com/blogs/duniho/archive/2008/08/15/warming-up-a-forms-control-for-receiving-text-output-part-1.aspx</link><pubDate>Fri, 15 Aug 2008 10:56:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1644720</guid><dc:creator>Peter</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/duniho/rsscomments.aspx?PostID=1644720</wfw:commentRss><comments>http://msmvps.com/blogs/duniho/archive/2008/08/15/warming-up-a-forms-control-for-receiving-text-output-part-1.aspx#comments</comments><description>Network samples lead to text output leads to the SimpleConsole class, a lightweight custom Forms control for the purpose of providing a length-limited text display buffer...(&lt;a href="http://msmvps.com/blogs/duniho/archive/2008/08/15/warming-up-a-forms-control-for-receiving-text-output-part-1.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1644720" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/duniho/archive/tags/Forms/default.aspx">Forms</category><category domain="http://msmvps.com/blogs/duniho/archive/tags/code/default.aspx">code</category><category domain="http://msmvps.com/blogs/duniho/archive/tags/console/default.aspx">console</category></item><item><title>Welcome!</title><link>http://msmvps.com/blogs/duniho/archive/2008/08/11/welcome.aspx</link><pubDate>Tue, 12 Aug 2008 01:25:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1644334</guid><dc:creator>Peter</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/duniho/rsscomments.aspx?PostID=1644334</wfw:commentRss><comments>http://msmvps.com/blogs/duniho/archive/2008/08/11/welcome.aspx#comments</comments><description>Every blog has to start somewhere. This blog starts here....(&lt;a href="http://msmvps.com/blogs/duniho/archive/2008/08/11/welcome.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1644334" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/duniho/archive/tags/welcome/default.aspx">welcome</category><category domain="http://msmvps.com/blogs/duniho/archive/tags/metablog/default.aspx">metablog</category></item></channel></rss>